我無法弄清楚如何找到這個陣列集的交集:如何找到包含使用Javascript/underscorejs的對象的數組的數組的交集?
[
[
{"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]
]
這只是樣本數據,真正集我改變了很多,但與結構。我想返回的路口,看起來像這樣(交叉的對象的單個陣列):
_.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); });
});
});
};
我需要這個,因爲我想:
[
{"name":"product2","light":"2"},
{"name":"product4","light":"4"},
]
我LoDashjs和Underscorejs一起嘗試這種使用knockoutjs創建一個標籤系統。我有一個分類標記按鈕的佈局,在點擊時寫入「過濾器」可觀察數組,唯一剩下的就是找到包含在這個可觀察數組中的過濾產品的交集。
請幫助我,我一直試圖解決這個問題,連續兩天,但缺乏JavaScript知識來弄清楚。提前致謝!
謝謝!!!!!!!!適用於什麼? – Marz
應用:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/apply – WiredPrairie