一、改变原数组的
1.shift:删除原数组的第一项,并返回删除元素的值,如果原数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.shift();
console.log(a)//[2,3,4,5]
console.log(b)//[1]
2.unshift:将参数添加到原数组的第一位,并且返回数组的长度
var a = [1,2,3,4,5];
var b = a.unshift(-2,-1); //a: b:7
console.log(a)//[-2,-1,1,2,3,4,5]
console.log(b)//7
3.pop:删除原数组的最后一项,并返回删除元素的值;如果数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.pop(); //a:[1,2,3,4] b:5
console.log(a)//[1,2,3,4]
console.log(b)//5
4.push:将参数添加到原数组末尾,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.push(6,7);
console.log(a)//[1,2,3,4,5,6,7]
console.log(b)//7
5.splice(start,deleteNumber,item1,item2,…):从start位置开始删除deleteNumber数量,并从该位置起插入 item
let a = [1, 2, 3, 4, 5];
let b = a.splice(2, 2, 7, 8, 9);
console.log(a); //[1, 2, 7, 8, 9, 5]
console.log(b); //[3, 4]、返回删除的项
let c = a.splice(0, 1);
console.log(c); //[1]同shift、删除第一个
let d = a.splice(0, 0, -2, -1);
console.log(d); //同unshift、向数组前面添加
let e = a.splice(a.length - 1, 1);
console.log(e); //[5]、同pop、返回删除项
let f = a.splice(a.length, 0, 6, 7); //同push
console.log(f); //返回空数组
7.reverse():将数组反序
let a = [1,2,3,4,5];
let b = a.reverse();
console.log(a)//[5,4,3,2,1]
console.log(b)//[5,4,3,2,1]
8.sort(sortfunction):按指定的参数对数组进行排序
let a = [1,2,3,4,5];
let b = a.sort();
console.log(b)//[1,2,3,4,5]
9.array.push.apply():进行数组合并
let arr1=[1,2];
let arr2=[3,4,5];
arr2.push.apply(arr2,arr1);//[3,4,5,1,2]
//调用arr2.push这个函数实例的apply方法,同时把arr1当作参数传入,这样arr2.push这个方法就会遍历arr1数组的所有元素,将arr1的元素存入arr2数组,使arr2数组发生改变。
二、不改变原数组
1.concat():可以将两个数组合并在一起,如果是使用ES6语法也可以用扩展运算符…来代替
var a = [1,2,3,4,5];
var b = a.concat(6,7);
console.log(a)//[1,2,3,4,5]
console.log(b)//[1,2,3,4,5,6,7]
let c = [1,2,3,4,5];
let d = [6,7,8,9];
let e = a.concat(b);
let f = [...a, ...b];
// 使用 ...
console.log(e);// [1,2,3,4,5,6,7,8,9]
console.log(f);// [1,2,3,4,5,6,7,8,9]
2.slice(start,end):可以截取出数组某部份的元素为一个新的数组,有两个必填的参数,第一个是起始位置,第二个是结束位置(参数只有一个时,截取参数个数,返回没有截取的新数组。也可以操作字符,同理)
var a = [1,2,3,4,5];
var b = a.slice(2,5);
console.log(a)//[1,2,3,4,5]
console.log(b)//[3,4,5]
2.join("任意分隔符"):将数组的元素组起一个字符串,不写分割符号的话就是默认的,号隔开
let a = [1, 2, 3, 4, 5];
let b = a.join();
console.log(a); //[1, 2, 3, 4, 5]
console.log(b); //1,2,3,4,5
let c =a.join("|")
console.log(c)//1|2|3|4|5
3.filter()将数组进行过滤,返回一个新的数组,不改变原数组
let a = [1, 2, 3, 4, 5, 6, 7, 8];
let b = a.filter(i => i > 3);
console.log(b); //[4, 5, 6, 7, 8]
4.find():会将数组中的元素遍历并且做判断,并会返回第一个符合判断条件的元素,如果没有元素符合则会返回undefined。
let a = [1,2,3,4,5,6,7,8];
console.log(a.find(i => i > 3)); // 4
console.log(a.find(i => i < 0)); // undefined
5.includes():会判断数组中是否包含某个值,如果有包含就返回true,否则返回false,有两个参数,第一个参数表示要判断的值( 必填),第二个参数表示从数组的哪个位置开始判断( 选填)。
let a = [1, 2, 3, 4, 5, 6, 7, 8];
console.log(a.includes(2));// true
console.log(a.includes(2, 2));// false
6.indexOf():会判断数组中是否包含某个值(从左到右),如果有包含就返回这个值在数组中第一个元素的索引值,如果没有就返回-1,有两个参数,第一个参数表示要判断的值( 必填),第二个参数表示从数组的哪个位置开始判断( 选填,预设为0 )。
let a = [1, 2, 3, 4, 5, 6, 7, 8];
console.log(a.indexOf(4)); // 3
console.log(a.indexOf(4, 5)); // -1 ( 在6,7,8中搜索有沒有4 )
7. lastIndexOf():会判断数组中是否包含某个值(由右而左),如果有包含就返回这个值在数组中第一个元素的索引值,如果没有就返回-1,这个方法有两个参数,第一个参数表示要判断的值( 必填),第二个参数表示判断从数组的哪个位置开始从右往左查找( 选填,默认为整个数组长度-1 )。
let a = [1, 2, 3, 4, 5, 6, 7, 4];
console.log(a.lastIndexOf(4)); //7
console.log(a.lastIndexOf(4, 2)); // -1 ( 在1, 2, 3中搜索有沒有4 )
8.findIndex():会将数组中的遍历并左判断,并会返回第一个符合判断条件元素的位置索引,如果没有元素符合则会返回-1。
let a = [1,2,3,4,5,6,7,8];
console.log(a.findIndex( i => i > 3)); // 3
console.log(a.findIndex(i => i < 0)); // -1
9.some():遍历素组只要其中一个满足条件就会返回true,反之false
let a = [1, 2, 3, 4, 5, 6];
console.log(a.some(i => i > 3));
// 返回 true,因为 4、5、6 大于 3
console.log(a.some(i => i > 6));
// 返回 fasle,因为全都小于或等于 6
10.every():会将素组进行遍历,只要其中一个元素不满足要求就会返回false,反之全部符合就会返回ture
let a = [1,2,3,4,5,6];
console.log(a.every(i => i > 3));
// fasle ( 因为1、2 小于 3,3 等于 3 )
console.log(a.every(i => i > 0));
// true