JavaScript 中带有 break 和 find() 的 for 循环

Art*_*gio 5 javascript loops find break

刚看到有人这么写:

let id = 1;
...
let employee = null;

for (const e of employees) {
    if (e.id === id) {
        employee = e;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

似乎是一种过于复杂的写法:

let id = 1;
...
let employee = employees.find(e => e.id === id);
Run Code Online (Sandbox Code Playgroud)

使用带有 a breakvs a的循环有什么好处find()吗?

find()幕后的实现是什么?

Lui*_*noz 5

性能

.find()比 快for...break

检查此链接以获取测试结果。for...break比慢 30%.find()


.find()源代码可以在这里找到

.find()IE11 及以下的旧浏览器不支持。您需要改用 polyfill。


观点

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

  • 顺便说一句,线性搜索不就是“n”次重复吗? (5认同)