在JavaScript中使用Break VS Find()的For循环
我刚看到有人写了这个:
let id = 1;
...
let employee = null;
for (const e of employees) {
if (e.id === id) {
employee = e;
break;
}
}
这似乎是一种过于复杂的写法:
let id = 1;
...
let employee = employees.find(e => e.id === id);
使用break
与find()
的循环有什么好处吗?
find()
幕后的实现是什么?
解决方案
性能
.find()
比for...break
快。
查看this link以查看测试结果。for...break
比.find()
慢30%
.find()
源代码here
.find()
在IE11及更早版本的浏览器中不受支持。您需要改用多边形填充。
意见
.find()
由于复杂程度和使用的内部算法,.find()
更好。使用for...break
,您将始终执行线性搜索,这意味着n * n
个重复。数组越大,函数执行速度越慢。
相关文章