数组遍历
1.for循环
2.forEach() "没有返回值" "原数组发生改变"
var array=[1,2,3]; array.forEach(function(value,index,array){ //传三个参数 第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身 array[index]=value*10; }); console.log(array); //[10,20,30] //没有返回值 var newarray=array.forEach(function(){}) console.log(newarray) undefined
注意: 无法使用break等语句跳出遍历, 直到所有元素都传递给调用的函数, 但是可以使用抛出异常, 提前终止循环 。
3.map "有返回值" "原数组没有发生改变"
var array=[1,2,3]; var new_array=array.map(function(value,index,array){ return value*10 }) console.log(array) //原数组未改变 [1,2,3] console.log(new_array) //[10,20,30]
4.for in "遍历的是数组的key(index)" "会改变原数组"
var array=[1,2,3]; array.name='zhujianxiong' for(var index in array){ array[index]+=1; } console.log(array); //[2, 3, 4, name: "zhujianxiong1"]
5.for of " 遍历的是数组的value" "不改变原数组"
var array=[1,2,3]; var a=[3,65,4] for(var value of array){ a.push(value); } console.log(array); console.log(a);