先列出js循环的方法
1.for循环
2.for in
3.for of
4.map
5.forEach
6.filter
7.reduce
8.some
9.every
10.while循环
实验环境
node 14.16.0版本。
实验数据
let arr = new Array(20000000).fill(1)
2000万长度,元素均为1的数组。
for循环
for (let i = 0; i < arr.length; i++) { }
for in
for (let i in arr) { }
for of
for (let i of arr) { }
map
arr.map((i) => { })
forEach
arr.forEach((i) => { })
filter
arr.filter((i) => { })
reduce
arr.reduce((pre, cur) => { },)
some
arr.some((i) => { })
every
arr.every((i) => { })
while循环
let i = 0;
while (i < arr.length) {
i++
}
总结
每个方法都经过几十次实验,循环时间都差不多,防止偶然误差。
结论
1.原生循环最快,也就是for循环和while循环。for循环又快于while循环。
2.for in最慢,因为它是遍历对象的,所以不要用它来遍历数组哦。
3.至于循环api中,every最快,map最慢。map最慢是因为要返回一个长度相同的新数组。
以上是笔者自己实验得到的结果,如有不同的想法,欢迎指正!
记录记录!