Javascript 在JS中,什么应该更有效
我想知道什么会更有效。表示2次迭代或简单的Javascript 在JS中,什么应该更有效,javascript,arrays,node.js,performance,Javascript,Arrays,Node.js,Performance,我想知道什么会更有效。表示2次迭代或简单的for循环的语言的本机函数 其思想是找到属性filterId与具体值匹配的对象数组的索引 带有for的解决方案将是运行时为n的解决方案 for (i = 0; i < entries.length; i++) { if (entries[i].filterId === filterId) { return i; } } 这方面的一些启示?您可以使用 您可以使用广泛可用的阵列功能实现
for
循环的语言的本机函数
其思想是找到属性filterId与具体值匹配的对象数组的索引
带有for
的解决方案将是运行时为n的解决方案
for (i = 0; i < entries.length; i++) {
if (entries[i].filterId === filterId) {
return i;
}
}
这方面的一些启示?您可以使用
您可以使用广泛可用的阵列功能实现,但复杂性仍然为O(n) 例如,您可以使用
数组。
数组的优点。一些
:它几乎在所有浏览器中都可用(从IE9开始在IE中可用)
有关文档,请参阅
const data=[{id:1},{id:2},{id:3},{id:4}]
设foundIndex=null;
数据部分((值、索引)=>{
如果(value.id==3){
foundIndex=索引;
返回true;
}
返回false;
});
console.log(foundIndex)你可以。。。测试一下?使用此项查看哪个更快。您的数组是否大于10000个条目?别担心,两个版本都足够快。即使不是这样,也有一些不妨碍可读性的方法。
entries.map(item=>item.filterId).indexOf(filterId);
entries.findIndex(item => item.filterId === filterId)