Ich kann nicht herausfinden, wie die Kreuzung dieses Satzes von Arrays zu finden:Wie finde ich den Schnittpunkt eines Arrays von Arrays, die Objekte mit Javascript/undercorejs enthalten?
[
[
{"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]
]
Dies ist nur Beispieldaten, die reale Set Ich habe viel verändert, aber mit dieser Struktur. Ich möchte, dass die zurück Kreuzung wie folgt aus (ein einzelnes Array der durchteuft Objekte) suchen:
[
{"name":"product2","light":"2"},
{"name":"product4","light":"4"},
]
ich schon versucht, diese zusammen mit LoDashjs und Underscore.js:
_.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); });
});
});
};
ich das brauche, weil ich versuche zu Erstellen Sie ein Tag-System mit knockoutjs. Ich habe ein Layout von kategorisierten Tag-Buttons, die beim Klick auf ein beobachtbares "Filter" -Array schreiben, das einzige, was übrig bleibt, ist die Schnittmenge der gefilterten Produkte, die in diesem beobachtbaren Array enthalten sind.
Bitte helfen Sie mir, ich habe versucht, dies für zwei Tage gerade zu lösen, aber fehlt das Javascript-Wissen, um es herauszufinden. Danke im Voraus!
Danke !!!!!!!! Was trifft zu? – Marz
Anwenden: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/apply – WiredPrairie