map
var obj = [{
age:11,name:"a"
},{
age:22,name:"b"
},{
age:33,name:"c"
}]
//第一个参数:数组中正在处理的当前元素
//第二个参数代表索引
//第三个是正在调用的这个数组
var obj1 = obj.map(function(e,inx,arr){
console.log(e,inx,arr)
return e.name
})
//箭头函数形式
// var obj1 = obj.map(e=>e.age)
console.log("输出结果:",obj1)
reduce
var obj = [{
age:11,name:"a"
},{
age:22,name:"b"
},{
age:33,name:"c"
}]
// 有两个参数一个是回调函数,一个是初始化值,也就是那个n,如果不设置初始化值,则默认数组的第一个元素
// 回调函数第一个参数是累加器
// 回调函数第二个参数是当前值
// 回调函数第三个参数是当前索引
// 回调函数第四个参数是源数组
var addAge = obj.reduce((n,y)=>{
console.log(n,y)
return n+y.age
},0)//设置初始值为0,0就代表那个N
filter
顾名思义就是过滤器
var obj = [{
age:11,name:"a"
},{
age:22,name:"b"
},{
age:33,name:"c"
}]
var arrName = obj.filter((e)=>{
return e.age === 11//返回满足age=11的元素
})
console.log(arrName)
sort
- sort不传任何参数,则会先将数组元素转为字符串然后按照unicode编码排序
var num = [1,3,13,5,123,35]
num.sort()
//先比较第一个字符,然后到第二个字符,一直延续下去
console.log(num)//[ 1, 123, 13, 3, 35, 5 ]
- 要想按照大小排序,则需要传入一个回调函数
- a代表后一个元素,b代表前一个元素,如下图中打印a为3,b为1
- 当a-b>0,a就会被移到b后面
- 当a-b<0,a就会被移到b前面
- return a-b则代表升序
- return b-a则代表降序
ar num = [1,3,13,5,123,35]
num.sort((a,b)=>{
console.log(a,b)
return a-b
})
console.log("输出结果",num)