JS基础——数组API之数组操作(filter、map、some、every、sort)

var arr = [1,2,3,4];
 
forEach
arr.forEach((item,index,arr) => {
console.log(item) //结果为1,2,3,4
})

filter

//filter过滤掉数组中不满足条件的值,返回一个新数组,不改变原数组的值。
var c=arr.filter((item,index,arr) => {
return item > 2 //新数组为[3,4] 过滤满足条件的项返回新数组
})

map

var d=arr.map((item,index,arr)=>{
return item*3;//遍历每一项进行操作后返回
})

some

var e=arr.some((item,index,arr)=>{
return item>3;//只要满足就返回true,终止循环
});

every

var f=arr.every((item,index,arr) => {
return item > 0 //结果为false
})
//遍历数组每一项,每一项返回true,则最终结果为true。当任何一项返回false时,停止遍历,返回false。不改变原数组
console.log(c,d,e);

sort 

对于两个元素x和y,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1
// 看上去正常的结果: ['Google', 'Apple', 'Microsoft'].sort();
// ['Apple', 'Google', 'Microsoft'];
// apple排在了最后: ['Google', 'apple', 'Microsoft'].sort();
// ['Google', 'Microsoft", 'apple']
// 无法理解的结果: [10, 20, 1, 2].sort();
// [1, 10, 2, 20]
根据相应的ASCII码进行排序,而小写字母a的ASCII码在大写字母之后
 
不过sort也是一个高阶函数,可以通过自定义,通过接收一个比较函数来实现自定义排序规则
var arr = ['Google', 'apple', 'Microsoft'];
arr.sort(function (s1, s2) {
x1 = s1.toUpperCase();
x2 = s2.toUpperCase();
if (x1 < x2) {
return -1; // x < y
}
if (x1 > x2) {
return 1; // x > y
}
return 0; // x == y
}); // ['apple', 'Google', 'Microsoft']

  

上一篇:记录linux系统下所有用户的操作信息


下一篇:02 Spark架构与运行流程