jQuery(ver3系)を用いて、外部ファイルを読み込むコードを次のように書きました。
(function($){ 'use strict'; const LIST_PATH_NEW = "./data/list.json"; const LIST_PATH_OLD = "./list.json"; function loadJson(jsonPath) { var defer = $.Deferred(); $.ajax({ type : "GET", url : jsonPath, dataType: "json", success: defer.resolve, error: defer.reject }); return defer.promise(); } function getList(listPath) { return loadJson(listPath); } function getNewList() { return getList(LIST_PATH_NEW); } function getOldList() { return getList(LIST_PATH_OLD); } $(function(){ var newList = getNewList(); var oldList = getOldList(); newList.done(function(data){ var myList = data.list; console.log(myList); }); oldList.done(function(data){ var myList = data.list; console.log(myList); }); // ★ ここらへんで array_merge みたいなことがしたいです ★ }); })(jQuery);
それぞれのAJAXから返ってくるデータは次のような形です。(簡略化しています)
{ "list": [ { "image": "aaa.jpeg", "title": "新しいやつ", "date": "2019-03-17", }, ] }
各オブジェクトのプロパティ名は両方とも同じです。
データの総数は古いほうが500件あまりで固定、新しいほうは5件あまりで今後増大していきます。
過去のデータと、新しいデータを一つのオブジェクトデータにマージし、
それをもとにフロントで色々する、といった感じです。
これら2つのデータは別々の管理システムから出力されており、
データのインポート/エクスポートの仕組みもないため、元ファイル自体をマージするということはできません。
(直接編集したところで次にシステムから出力された時に編集内容が上書きされる)
PHPで言うところの array_merge
みたいなことをして、一つのオブジェクトデータにしたいのですが、
どのようにすれば実現できますでしょうか。
皆様お知恵を貸してください。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー