数组的遍历
- for循环
var arr = [4,2,5,8,9];
arr["a"] = 10;
arr[7] = 7;
for(let i=0;i<arr.length;i++)
//for遍历 根据下标遍历 可以遍历空元素 但是不可以遍历非数字的下标
{
console.log(i,arr[i]);
}
console.log(arr.length);
console.log(arr["a"]);
运行结果:
- for in循环
for in循环是用来遍历对象的非字符可枚举属性的,遍历顺序与Object.keys()函数取到的一致。ps:不会按照顺序遍历对象
//for in 循环 可以遍历类数组,如:字符串,也可以输出非数字的下标
for (let key in arr) {
console.log(key,arr[key]);
}
var str = "hello world";
for(let k in str){
console.log(k,str[k]);
}
运行结果:
- for of 循环
用来遍历可迭代对象,有顺序。
//for of 循环 遍历的结果是值 不是下标 不会遍历非数字下标 会遍历空元素
for(let value of arr){
console.log(value);
}
- forEach循环
//forEach 遍历 不能遍历空元素和非数字下标
var ret = arr.forEach(function(value,index,arr1){
console.log(value,index,arr1);
})
console.log(ret);
返回值为undefined,map()参数和forEach相同,map()方法实现的是“映射”,会返回一个数组,其callback需要有return值,如果没有将全部映射为undefined。
var arr1 = [1,2,3,4]
var ret1 = arr1.map((value,index,arr1)=>{
console.log(value,index,arr1);
return value;
})
console.log(ret1);
注意:尽量不要在遍历的过程中进行增删操作