我想检查一个对象数组中是否有某个值。
例如,如果我有这样的事情:
[ { _id: 1,
name: foo },
{ _id: 2,
name: bar },
{ _id: 3,
name: foox },
{ _id: 4,
name: fooz },
]
var search = [1,25,33,4,22,44,5555,63]
然后我想检查search
中的一个值是否在对象数组中包含的一个对象中。
答案 0 :(得分:1)
var list = [ { _id: 1, name: "foo" },
{ _id: 2, name: "bar" },
{ _id: 3, name: "foox" },
{ _id: 4, name: "fooz" },
];
var search = [1,25,33,4,22,44,5555,63];
list.forEach(function(element){
if(search.indexOf(element._id) != -1){
console.log("found");
}
});
试试这个,希望这就是你要找的东西。
答案 1 :(得分:1)
这将返回一个id列表,然后在搜索数组中至少有一个元素位于该列表中时计算出来:
var found = arr.map(function (el) {
return el._id;
}).some(function (el) {
return search.indexOf(el) > -1;
});
some
很有意思,因为它在找到第一场比赛后立即突破了检查。
答案 2 :(得分:0)
如果:
var o = [{ _id: 1, name: "foo"}, { _id: 2, name: "bar"}, { _id: 3, name: "foox"}, { _id: 4, name: "fooz"}];
var search = [1, 25, 33, 4, 22, 44, 5555, 63];
试试这个:
var outPus = o.filter(function(u){
return search.some(function(t){ return t == u._id})
})
或者这个:
var outPut = [];
search.forEach(function(u){
o.forEach(function(t){
if(t._id == u) outPut.push(t)
})
})
答案 3 :(得分:0)
var list = [ { _id: 1,
name: foo },
{ _id: 2,
name: bar },
{ _id: 3,
name: foox },
{ _id: 4,
name: fooz },
];
var isAnyOfIdsInArrayOfObject = function(arrayOfObjects, ids){
return arrayOfObjects.some(function(el) { return ids.indexOf(el._id) !== -1; });
}
答案 4 :(得分:0)
var list = [
{ _id: 1, name: 'foo' },
{ _id: 2, name: 'bar' },
{ _id: 3, name: 'foox' },
{ _id: 4, name: 'fooz' }
];
var search = [1,25,33,4,22,44,5555,63];
此代码构建了search
中list
中所有元素的列表:
var inArr = search.filter(function(index){
return list.some(function(el){
return el._id === index;
});
});
console.log(inArr); // [1,4];
显然,您可以切换list
和search
,以便获得包含list
中引用的search
元素的数组:
var elements = list.filter(function(el){
return search.some(function(index){
return el._id === index;
});
});
console.log(elements); // [{ _id: 1, name: 'foo' },{ _id: 4, name: 'fooz' }]
答案 5 :(得分:0)
下面是find方法的示例。希望这会帮助你。
// sample item array
const items = [
{ name : 'Bike', price : 100 },
{ name : 'Car', price : 3000 }
]
// find method example
const foundItem = items.find(( item )) => {
// you can put your desired condition over here to find an element from
// javascript array.
return item.name == 'Bike'
}