分析JavaScript数组操作难点(3)
some
的返回值被忽略掉了,它已经脱离了判断数组中是否有元素符合给出的条件这一原始的含义。
在 ES6 前,笔者主要使用该法(其实因为 Babel 代码膨胀的缘故,现在也偶尔使用),ES6 不一样了,我们有了 for...of。for...of
是真正的循环,可以 break
:
for (const x of [1, 2, 3, 4, 5]) { console.log(x); if (x === 3) { break; } }
但是有个问题,for...of
似乎拿不到循环的下标。其实 JavaScript 语言制定者想到了这个问题,可以如下解决:
for (const [index, value] of [1, 2, 3, 4, 5].entries()) { console.log(`arr[${index}] = ${value}`); }
Array.prototype.entries
for...of
和 forEach
的性能测试:https://jsperf.com/array-fore... Chrome 中 for...of
要快一些哦😯
如果有更多建议欢迎留言指出