gpt4 book ai didi

javascript - 如何确定 Javascript 数组是否包含具有等于给定值的属性的对象?

转载 作者:行者123 更新时间:2023-12-03 23:41:45 27 4
gpt4 key购买 nike

我有一个类似的数组

vendors = [{
Name: 'Magenic',
ID: 'ABC'
},
{
Name: 'Microsoft',
ID: 'DEF'
} // and so on...
];

如何检查这个数组以查看“Magenic”是否存在?我不想循环,除非我必须这样做。我正在处理可能有几千条记录。

最佳答案

不需要重新发明 wheel 循环,至少不需要明确地(使用 arrow functionsmodern browsers only ):

if (vendors.filter(e => e.Name === 'Magenic').length > 0) {
/* vendors contains the element we're looking for */
}

或者,更好,使用 some因为它允许浏览器在找到一个匹配的元素后立即停止,所以它会更快:

if (vendors.some(e => e.Name === 'Magenic')) {
/* vendors contains the element we're looking for */
}

或等效项(在本例中)find :

if (vendors.find(e => e.Name === 'Magenic')) {
/* same result as above, but a different function return type */
}

您甚至可以使用 findIndex 获取该元素的位置:

const i = vendors.findIndex(e => e.Name === 'Magenic');
if (i > -1) {
/* vendors contains the element we're looking for, at index "i" */
}

如果您需要与糟糕的浏览器兼容,那么您最好的选择是:

if (vendors.filter(function(e) { return e.Name === 'Magenic'; }).length > 0) {
/* vendors contains the element we're looking for */
}

关于javascript - 如何确定 Javascript 数组是否包含具有等于给定值的属性的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35231197/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com