我有一个数组
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”是否存在?我不想循环,除非迫不得已。我可能要处理几千条记录。
当前回答
根据ECMAScript 6规范,您可以使用findIndex。
const magenicIndex =供应商。findIndex(供应商=>供应商。= = = ' Magenic')名称;
magenicIndex将保留0(这是数组中的索引)或-1(如果没有找到)。
其他回答
如果你正在使用jquery,你可以利用grep来创建所有匹配对象的数组:
var results = $.grep(vendors, function (e) {
return e.Name == "Magenic";
});
然后使用结果数组:
for (var i=0, l=results.length; i<l; i++) {
console.log(results[i].ID);
}
我宁愿用正则表达式。
如果您的代码如下所示,
vendors = [
{
Name: 'Magenic',
ID: 'ABC'
},
{
Name: 'Microsoft',
ID: 'DEF'
}
];
我推荐
/"Name":"Magenic"/.test(JSON.stringify(vendors))
如果我错了请指正。 我可以像这样使用每种方法,
var found=false;
vendors.forEach(function(item){
if(item.name === "name"){
found=true;
}
});
现在我已经习惯了,因为它简单明了。 谢谢你!
const check = vendors.find((item)=>item.Name==='Magenic')
console.log(check)
试试这段代码。
如果项目或元素存在,则输出将显示该元素。如果它不存在,那么输出将是“未定义的”。
根据ECMAScript 6规范,您可以使用findIndex。
const magenicIndex =供应商。findIndex(供应商=>供应商。= = = ' Magenic')名称;
magenicIndex将保留0(这是数组中的索引)或-1(如果没有找到)。