js方法
1.push
- 在数组末端添加一个多个元素,返回添加新元素后数组的长度,会改变原数组
var a = [1, 2];
var b = a.push(3);
console.log(a);//1,2,3
console.log(b);//3
2.pop
var a = [1, 2, 3];
var b = a.pop();
console.log(a);//1,2
console.log(b);//3
3.shift
var a = [1, 2, 3];
var b = a.shift();
console.log(a);//2,3
console.log(b);//1
4.unshift
- 在数组的第一个位置添加元素,返回添加元素后数组的长度,会改变原数组
var a = [1, 2, 3];
var b = a.unshift(0);
console.log(a);//0,1,2,3
console.log(b);//4
5.slice
- slice(a,b)
- 提取目标数组的一部分,返回一个新数组,不改变原数组
- a为起始位置,b为终止位置(不包含b)
- 省略b,则从a返回至原数组最后一个元素
- 都省略,返回原数组
- a,b是负数,表示倒数计算的位置
- a>b,返回空数组
var a = [1, 2, 3, 4, 5];
console.log(a.slice(1, 3));//2,3
console.log(a.slice(1));//2,3,4,5
console.log(a.slice());//1,2,3,4,5
console.log(a.slice(-4, -1));//2,3,4
console.log(a.slice(3, 1));//[]
6.splice
- splice(a,b,c,d,...)
- 删除原数组一部分成员,并在删除位置添加新成员,会改变原数组,返回被删除元素
- a为起始位置,b为删除个数,c,d,...为插入元素
- a为负数,从倒数位置开始删除
- b为0,只插入元素
- 无c,d,只进行删除操作
var a = [1, 2, 3, 4, 5];
a.splice(1, 2);
console.log(a);//1,4,5
a.splice(1, 0, 2, 3);
console.log(a);//1,2,3,4,5
a.splice(-1, 1);
console.log(a);//1,2,3,4
7.reverse
var a = [1, 2, 3, 4, 5];
console.log(a.reverse());//5,4,3,2,1
8.sort
- 对数组成员进行排序,默认按字典顺序排序,改变原数组
var a = [2, 4, 5, 1, 3];
a.sort(function (a, b) {
return a - b;//按小到大排
//return b-a;//按大到小排
});
console.log(a);//1,2,3,4,5
9.join
- 指定参数作为分隔符,将所有数组成员连接为一个字符串返回,不改变原数组
var a = [1, 2, 3, 4, 5];
console.log(a.join('|'));//1|2|3|4|5
console.log(a.join('*'));//1*2*3*4*5
10.concat
var a = [1, 2];
var b = [3, 4, 5];
var c = a.concat(b);
var d = b.concat(a);
console.log(a);//1,2
console.log(b);//3,4,5
console.log(c);//1,2,3,4,5
console.log(d);//3,4,5,1,2
ES5方法
1.map
- 将数组的所有成员依次传入参数函数,然后把每一次的结果组成一个新数组返回
var a = [1, 2, 3, 4, 5];
var b = a.map(function (x, y, z) {
return x + 1;
//x为当前元素,y为当前元素下标,z为数组本身
});
console.log(b);//2, 3, 4, 5, 6
2.forEach
- 与map方法相似,不返回值,只操作数据,无法中断执行
var a = [1, 2, 3, 4, 5];
a.forEach(function (x, y, z) {
console.log(y + ":" + x);
//0:1
//1:2
//2:3
//3:4
//4:5
});
3.filter
- 过滤数组成员,满足条件的成员组成一个新数组返回。不改变原数组。
var a = [1, 2, 3, 4, 5];
var b = a.filter(function (x, y, z) {
return x % 2 == 0;
});
console.log(b);//2,4
4.some
- 返回布尔值,只要有一个成员返回true,则返回true
var a = [1, 2, 3, 4, 5];
var b = a.some(function (x, y, z) {
return x % 2 == 0;
});
console.log(b);//true
5.every
var a = [1, 2, 3, 4, 5];
var b = a.every(function (x, y, z) {
return x % 2 == 0;
});
console.log(b);//false
6.reduce
var a = [1, 2, 3, 4, 5];
var b = a.reduce(function (x, y) {
return x + y;
});
console.log(b);//15
7.indexOf
- 返回给定元素在数组中第一次出现的位置,没有则返回-1.可接受第二个参数,作为搜索起始位置
var a = [1, 2, 3, 4, 2, 5];
console.log(a.indexOf(2));//1
console.log(a.indexOf(0));//-1
console.log(a.indexOf(2, 3));//4
8.lastIndexOf
- 返回给定元素在数组中最后一次出现的位置,没有则返回-1
var a = [1, 2, 3, 4, 2, 5];
console.log(a.lastIndexOf(2));//4
console.log(a.lastIndexOf(0));//-1
ES6方法
find&findIndex
- find返回符合条件的第一个元素
- findIndex返回符合条件的第一个元素的位置
- 若没有找到返回undefined
var a = [1, 2, 3, 4, 2, 5];
var b = a.find((x, y, z) => {
return x > 3;
});
var c = a.findIndex((x, y, z) => {
return x > 3;
});
var d = a.find((x, y, z) => {
return x < 1;
});
console.log(b);//4
console.log(c);//3
console.log(d);//undefined