Underscore.js hat eine .contains()
Verfahren das könnte in diesem Fall nützlich. Wenn Sie bei der Suche die b
Schlüssel des Objekts nur besorgt sind, dann würde folgende Arbeiten:
var sampleData = { id:1, a:"karma", b:["jinx","caitlyn","tristana"] };
if (_.contains(sampleData.b, 'jinx') {
// Found
} else {
// Not found
}
Basierend auf Ihren Kommentar hier ist eine überarbeitete Version. Dies verwendet die .filter
-Methode von Underscore, um das Array nach denen zu filtern, die jink
im b
-Schlüsselfeld enthalten.
var sampleData = [
{ id:1, a:"karma", b:["jinx","caitlyn","tristana"] },
{ id:2, a:"karma", b:["kinx","caitlyn","tristana"] },
{ id:3, a:"karma", b:["linx","caitlyn","tristana"] },
{ id:4, a:"karma", b:["minx","caitlyn","tristana"] },
{ id:5, a:"karma", b:["ninx","caitlyn","tristana"] },
{ id:6, a:"karma", b:["jinx","caitlyn","tristana"] },
{ id:7, a:"karma", b:["pinx","caitlyn","tristana"] },
{ id:8, a:"karma", b:["qinx","caitlyn","tristana"] },
{ id:9, a:"karma", b:["rinx","caitlyn","tristana"] }
];
var findJinx = function(data) {
return _.first(_.filter(data, function(item) {
if (_.contains(item.b, 'jinx')) {
return item;
}
}));
}
console.log(findJinx(sampleData));
Es ist unklar, Beispieldaten eine Variable also was ist mit sample_data [b] .indexOf ("jinx"), wenn es -1 zurückgibt bedeutet es b enthält keine jinx –
lass mich das ausprobieren und updaten. Danke –
Ich habe in Antwort geschrieben, was ich meine :) weil es vielleicht nicht klar genug im Kommentar :) –