1.五种遍历的方式
- while
var i = 0
while(i<list.length){
console.log(list[i]);
i++
}
- for
for(var i=0;i<list.length;i++){
console.log(list[i]);
}
- for in 遍历索引,返回的 i 是数组下标
for(var i in list){
console.log(list[i]);
}
- for of 遍历元素,返回的v是元素值
for(var v of list ){
console.log(v);
}
- map 遍历。将和fliter()在第 2 点中讲到。
2. Array 的常用内置函数
map() 返回由回调函数处理过后的元素,返回到一个新数组里。
filter()返回由回调函数 筛选 过后的元素,返回到一个新数组里。
3.回调函数初识
我的理解是,某个函数F()的回调函数:
1.是F()的一个参数,用来进行某些指定处理。
2.回调函数自己的形参和返回值,已经在F()内部实现中被规定。也就是说能传入的 回调函数的形参 早已内定,程序员只是自定义一个形参名而已。
3.回调函数能使用外部定义的变量
例1:使用filter()返回某个数组的所有奇数
var L1 = [1,3,4,6,7,8,11,23,14,15,16]
var L2 = L1.filter(function(item){
if(item%2==1)
return item
})
//(6) [1, 3, 7, 11, 23, 15]
解释:
filter()让回调函数测试每个元素,并规定用变量名item接收当前元素,回调函数返回符合条件的每个元素。
例2:使用map() 返回当前元素的10倍
var L3 = L1.map(item => item*10) //更简洁的写法
console.log(L3);
//(11) [10, 30, 40, 60, 70, 80, 110, 230, 140, 150, 160]
例3:回调函数的场景之一,是将内部数据传出外部。
var max = L1[0]
var i = 0
var maxIndex = L1.map(function(value,index){
if(value>max){
max = value
i = index
}
})
console.log(max+","+i); //23,7