1、push()
结尾添加1/多元素。
var rel = arr.push("A", "B");
console.log(arr); // [1, 2, "c", "A", "B"]
2、unshift()
开头添加1/多元素。
var rel = arr.unshift("A", "B");
console.log(arr); // [ "A", "B",1, 2, "c"]
3、pop()
结尾删除元素。返回删除的元素。
var arr = [1, 2, "c"];
var rel = arr.pop();
console.log(arr); // [1, 2]
console.log(rel); // c
4、shift()
开头删除元素。
var arr = ["a","b", "c"];
var rel = arr.shift();
console.log(arr); // ['b', "c"]
console.log(rel); // a
5、reverse()
反转数组。
var arr = [1, 2, 3, "a", "b", "c"];
var rel = arr.reverse();
console.log(arr); // ["c", "b", "a", 3, 2, 1]
6、sort()
按unicode顺序排序。
var arr1 = [10, 1, 5, 2, 3];
arr1.sort();//[1,10,2,3,5]
里面传入回调函数可以进行大小顺序排序:
-
从小到大:function(a, b) {return: a - b;}
-
从大到小:unction(a, b) {return: b - a;}
7、splice()
删除、增加、替换指定位置的元素。
参数:起始下标、数量、元素(可选)
var arr = ["a", "b", "c", 2, 3, 6];
var rel = arr.splice(2, 1, "add1", "add2");
//arr: ["a", "b", "add1", "add2", 2, 3, 6];
//rel ["c"]
8、concat()
合并数组
var rel = arr1.concat(arr2, arr3);
console.log(arr1); //原数组
console.log(rel); //新数组
9、join()
将数组转为字符串,参数为连接符,默认“,”。
var list = ["a", "b", "c", "d"]; // "a-b-c-d"
var result = list.join("-"); //"a-b-c-d"
10、slice()
裁剪指定位置的数组。
参数:起始下标,结束下标(负数倒着数)
var list = ["a", "b", "c", "d"];
var result = list.slice(1, 3);
console.log(result); // ["b", "c"]
11、toString()
将数组转为字符串,用“,”连接。
var rel = list.toString();
12、valueOf()
返回数组原始值,一般为数组本身。
var list = [1, 2, 3, 4];
var rel = list.valueOf();
console.log(list); // [1, 2, 3, 4]
console.log(rel); // [1, 2, 3, 4]
13、indexOf()
查询某个元素第一次出现的位置。返回下标,没找到返回-1。
var list = [1, 2, 3, 4];
var index = list.indexOf(4); //3
14、lastIndexOf()
从后向前查询元素第一次出现的位置。返回下标,没找到返回-1。
var list = [1, 2, 3, 4];
var index = list.indexOf(4); //3
15、forEach()
遍历数组,每个元素执行里面的回调函数,回调参数有元素、索引、数组。
var list = [32, 93, 77, 53, 38, 87];
var res = list.forEach(function (item, index, array) {
console.log(item, index, array);
});
//输出多个,第一个为:32 0 [32, 93, 77, 53, 38, 87]
16、map()
和forEach一样遍历,但回调函数可以返回出一个值,并将这些返回值生成一个新的数组。
var list = [32, 93, 77, 53, 38, 87];
var res = list.map(function (item, index, array) {
return item + 5 * 2;
});//新数组:【42,103,87,63,48,97】
17、filter()
筛选器,传入一个回调函数,每次循环把满足条件的元素放到新的数组中。
var list = [32, 93, 77, 53, 38, 87];
var resList = list.filter(function (item, index, array) {
return item >= 60;
});
//[93,77,87]
18、every()
传入一个回调函数,设定条件,全部元素遍历判断,全满足true,其余false。
var list = [32, 93, 77, 53, 38, 87];
var result = list.every(function (item, index, array) {
console.log(item, index, array);
return item >= 50;
});//false
19、some()
传入一个回调,设定条件,全部元素遍历判断,没有一个满足返回false,其余返回true。
var list = [32, 93, 77, 53, 38, 87];
var result = list.some(function (item, index, array) {
return item >= 50;
});//true
20、reduce()
累加器,传入一个回调,回调中每一次循环结束,得到的值,作为pre传入下一次回调执行。
- 第一次循环执行,由于没有pre,第一个元素作为pre,循环从第二个元素开始,index=1。
var arr = [2, 3, 4, 5];
var sum = arr.reduce(function (prev, item, index, array) {
console.log(prev, item, index, array);
return prev + item;
}, 0);//0为第一次pre的初始值,给了0循环就从第一个元素开始。
//如果没有传入0,就从第二个元素开始,循环三次。
//sum为14
21、reduceRight()
和reduce用法一致,不过循环是从右向左。
22、includes()
用来判断一个数组是否含有一个指定的值,如果是的话返回true,如果不是返回false。
arr1.includes('aaa'); //true
23、Array.from()
将类数组对象,或者可遍历的对象转换成一个真正的数组。
- 被转换的对象需要有length属性,用于指定数组长度,没有的话会转成空数组。
- 被转换的对象属性名必须为数值型或者字符串型的数字。
var all = {
0: "张飞",
1: "28",
2: "男",
3: ["率土", "鸿图", "三战"],
length: 4,
};
var list = Array.from(all);
console.log(all);
//list为数组:[张飞,28,男,array(3)]
24、find()
传入一个含条件的回调,返回满足的第一个元素,如果没有返回undefined。
var list = [55, 66, 77, 88, 99, 100];
var res= list.find(function (item, index, array) {
return item > 60;
});//66
25、findIndex()
和find一样,不过返回的是下标。
26、fill()
用值去填充数组。
传入参数:value 必需。填充的值。start 可选。开始填充位置。end 可选。停止填充位置 (默认为 array.length)
var result = ["a", "b", "c"].fill("填充", 1, 2);
//["a","填充","c"]
27、flat()
用于将嵌套的数组,去嵌套-"拉平"。默认拉平一次,可传参,参数是几拉平几次。
var list = [1, 2, [3, 4, [5]]];
var arr1 = list.flat(); // 默认拉平一次;[1, 2, 3, 4, [5]]
var arr2 = list.flat(2); // 拉平2次;[1, 2, 3, 4, 5]