我有一个数组
vendors = [{
Name: 'Magenic',
ID: 'ABC'
},
{
Name: 'Microsoft',
ID: 'DEF'
} // and so on...
];
我如何检查这个数组,看看“Magenic”是否存在?我不想循环,除非迫不得已。我可能要处理几千条记录。
我有一个数组
vendors = [{
Name: 'Magenic',
ID: 'ABC'
},
{
Name: 'Microsoft',
ID: 'DEF'
} // and so on...
];
我如何检查这个数组,看看“Magenic”是否存在?我不想循环,除非迫不得已。我可能要处理几千条记录。
当前回答
如果我错了请指正。 我可以像这样使用每种方法,
var found=false;
vendors.forEach(function(item){
if(item.name === "name"){
found=true;
}
});
现在我已经习惯了,因为它简单明了。 谢谢你!
其他回答
const check = vendors.find((item)=>item.Name==='Magenic')
console.log(check)
试试这段代码。
如果项目或元素存在,则输出将显示该元素。如果它不存在,那么输出将是“未定义的”。
目前最简单的方法:
if (vendors.findIndex(item => item.Name == "Magenic") == -1) {
//not found item
} else {
//found item
}
或者你可以这样做:
const find = (key, needle) => return !!~vendors.findIndex(v => (v[key] === needle));
可能太晚了,但是javascript数组有两个方法,每个方法都返回一个布尔值,可以帮助你实现这一点。
我觉得有些最适合你想要达到的目标。
vendors.some( vendor => vendor['Name'] !== 'Magenic' )
一些函数验证数组中的任何对象是否满足给定条件。
vendors.every( vendor => vendor['Name'] !== 'Magenic' )
Every验证数组中的所有对象都满足给定条件。
Var without2 = (arr, args) => arr。过滤(v => v.id !== args.id); 例子:
without2 ([{id: 1}, {id: 1}, {id: 2}), {id: 2})
结果: without2 ([{id: 1}, {id: 1}, {id: 2}), {id: 2})