Fork me on GitHub

数组方法

迭代器函数

every

会返回第一个false后中断执行

1
2
3
4
5
6
7
8
function isEven(x) {
console.log(x);
return (x % 2 == 0) ? true : false;
}

let num = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];

num.every(isEven);
some

会返回第一个true后中断执行

1
2
3
4
5
6
7
8
function isEven(x) {
console.log(x);
return (x % 2 == 0) ? true : false;
}

let num = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];

num.some(isEven);
forEach

与for的结果相同

1
2
3
4
5
6
7
8

let num = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];

num.forEach(function(item,index){

console.log(x % 2 == 0);

});
map

myMap的值为[false,true,false,true,false,true,false,true,false,true,false,true,false,true,false],它保存了传入map方法的isEven函数的运行结果。

1
2
3
4
5
6
7
8
function isEven(x) {
console.log(x);
return (x % 2 == 0) ? true : false;
}

let num = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];

let myMap = num.map(isEven);
filter

myFilter返回的值为 [2,4,6,8,10,12,14]

1
2
3
4
5
6
7
8
function isEven(x) {
console.log(x);
return (x % 2 == 0) ? true : false;
}

let num = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];

let myFilter = num.filter(isEven);
reduce

targ 的值为200 ,可以获取前一个和后一个值

1
2
3
4
5
let num = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];

let targ = num.reduce(function (previsor, current, index) {
return previsor + current;
});

搜索和排序

reverse

res为 [
15,
14,
13,
12,
11,
10,
9,
8,
7,
6,
5,
4,
3,
2,
1
],数组内的元素发生反序

1
2
let num = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
let res = num.reverse();
sort

排序

1
2
3
4
5
let num = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
function compare(a,b) {
return a-b;
}
num.sort(compare);
  • 自定义排序
1
2
3
4
5
6
7
8
9
let info = [
{name:'yinxs',age:25},
{name:'yu',age:28},
{name:'pan',age:27}
];
function compare(a,b) {
return a.age - b.age;
}
info.sort(compare);
  • 字符串排序
1
2
3
4
5
6
7
8
9
10
11
let info = ['Ana','John','ana'];
function compare(a,b) {
if(a.toLowerCase() < b.toLowerCase()){
return -1;
}else if(a.toLowerCase() > b.toLowerCase()){
return 1;
}else{
return 0;
}
}
info.sort(compare);
搜索(lastIndexOf,indexOf)

indexOf返回第一个匹配的索引,lastIndexOf返回最后一个匹配的索引

显示 Gitment 评论