JavaScript —— 极简主义
上一篇文章主要对数组的增、删、改、查,以及是否改变原始数组进行了归纳总结,本文将从数组的循环遍历这一维度继续归纳总结数组知识点。主要内容为:数组遍历for, for in , for of , foreach, map五种循环遍历方法的区别,以及每种方法的优缺点。
遍历性能: for循环遍历 > for…of遍历 > forEach遍历 > for…in遍历 > map遍历
喜欢的朋友可以点关注,点关注,不迷路哦~
1、for (略)
2、for in
特点:遍历的是key,即索引字符串。
该方法虽然可以遍历数组,但是强烈不建议,原因有一下几点:
1)遍历的顺序有可能不是数组内部的顺序,即顺序紊乱(不确定标红的部分算不算)
2)会遍历数组内所有可枚举的属性,包括原型上的属性和方法
let arr = [1, { b: 666 }, 2, { a: 234 }];Array.prototype.name = "jony"arr.sex = 'man'Array.prototype.age = 26console.log('arr:', arr);for (let index in arr) { console.log(arr[index]) }
总之,遍历数组时,不要使用for in,枪毙掉!但它适合遍历对象,期待后续对象相关文章。
2、for of
特点:遍历的是值value。允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等,但普通对象不可迭代,即不能遍历普通对象
let arr = ['a', 'b', {name: 'jony'}, 'c'];for(let value of arr) { console.log(value); // a, b, {name: 'jony'}, c}
3、forEach
特点:1)会从头到尾对数组里的每个元素遍历一遍,中途不会跳出循环;
2)不会生成新数组,也不改变原数组;
3)对空数组不执行回调;(不重要)
let arr = ["a