JS 基础 01:Array的几种内置函数、什么是回调函数

233 阅读1分钟

1.五种遍历的方式

  1. while
var i = 0 
while(i<list.length){
    console.log(list[i]);
    i++
}
  1. for
for(var i=0;i<list.length;i++){
	console.log(list[i]);
}
  1. for in 遍历索引,返回的 i 是数组下标
for(var i in list){
	console.log(list[i]);
}
  1. for of 遍历元素,返回的v是元素值
for(var v of list ){
    console.log(v);
}
  1. 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