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()比… break更快.

检查this link以获取测试结果. for … break比.find()慢30%

.find()源代码可以找到here

较旧的浏览器(例如IE11及更低版本)不支持.find().您需要改用polyfill.

意见

由于复杂程度和所使用的内部算法,.find()更好.使用for … break,您将始终进行线性搜索,这意味着n * n次重复.数组越大,功能越慢.

上一篇:php-如何通过循环在同一标题下分组数据


下一篇:PHP在foreach循环中迭代simplexml