数组API之数组操作(filtermapsomeeverysort)
Posted 浮云随笔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组API之数组操作(filtermapsomeeverysort)相关的知识,希望对你有一定的参考价值。
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‘]