この一連の配列の交点を見つける方法がわかりません:
[
[
{"name":"product1","light":"1"},
{"name":"product2","light":"2"},
{"name":"product5","light":"5"},
{"name":"product4","light":"4"}
],
[
{"name":"product2","light":"2"},
{"name":"product3","light":"3"},
{"name":"product4","light":"4"}
],[...more arrays with objects]
]
これは単なるサンプルデータです。私が持っている実際のセットは多くの変更がありますが、その構造になっています。返された交差を次のようにしたい (交差したオブジェクトの単一の配列):
[
{"name":"product2","light":"2"},
{"name":"product4","light":"4"},
]
これをLoDashjsとUnderscorejsと一緒に試しました:
_.intersectionObjects = _.intersect = function(array) {
var slice = Array.prototype.slice; // added this line as a utility
var rest = slice.call(arguments, 1);
return _.filter(_.uniq(array), function(item) {
return _.every(rest, function(other) {
//return _.indexOf(other, item) >= 0;
return _.any(other, function(element) { return _.isEqual(element, item); });
});
});
};
ノックアウトjsを使用してタグシステムを作成しようとしているため、これが必要です。クリックすると「フィルター」オブザーバブル配列に書き込む分類されたタグボタンのレイアウトがあります。残っているのは、このオブザーバブル配列に含まれるフィルターされた製品の交点を見つけることだけです。
私を助けてください、私はこれを2日間続けて解決しようとしていますが、それを理解するためのJavaScriptの知識が不足しています. 前もって感謝します!