1. length 返回数组的长度
let arr = [7, 5, 4, 2];
console.log(arr.length); //4
2. push() 向数组的末尾添加一个或更多元素(包括对象和数组),并返回新的长度。
let arr = [7, 5, 4, 2];
const len = arr.push(40);
console.log(len); //5
console.log(arr); //[7, 5, 4, 2, 40]
在末尾添加对象或数组时:
let arr = [7, 5, 4, 2];
let arr2 = [40, 5, 2];
const len = arr.push(arr2);
console.log(len); //5
console.log(arr); //[7, 5, 4, 2, Array(3)]
3. pop() 删除并返回数组的最后一个元素
let arr = [7, 5, 4, 2];
const ret = arr.pop();
console.log(ret); //2
console.log(arr); //[7, 5, 4]
4. unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
let arr = [7, 5, 4, 2];
const ret = arr.unshift(9);
console.log(ret); //5
console.log(arr); //[9, 7, 5, 4, 2]
5. shift() 删除并返回数组的第一个元素
let arr = [7, 5, 4, 2];
const ret = arr.shift();
console.log(ret); //7
console.log(arr); //[5, 4, 2]
6. concat() 连接两个或更多的数组(可以是元素),并返回结果。
let arr = [7, 5, 4, 2];
const ret = arr.concat(2);
console.log(ret); //[7, 5, 4, 2, 2]
console.log(arr); //[7, 5, 4, 2]
concat含有多个参数时:
let arr = [7, 5, 4, 2];
let arr1 = [9, 7];
const ret = arr.concat(2, arr1);
console.log(ret); //[7, 5, 4, 2, 2, 9, 7]
console.log(arr); //[7, 5, 4, 2]
7. join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。默认是 ,分隔
let arr = [7, 5, 4, 2];
const ret = arr.join();
console.log(ret); //7,5,4,2 string类型
console.log(arr); //[7, 5, 4, 2]
指定分隔符分隔时:
let arr = [7, 5, 4, 2];
const ret = arr.join('');
console.log(ret); //7542
const ret = arr.join(' ');
console.log(ret); //7 5 4 2
const ret = arr.join('-');
console.log(ret); //7-5-4-2
8. reverse() 颠倒数组中元素的顺序,原数组会改变
let arr = [7, 5, 4, 2];
const ret = arr.reverse();
console.log(ret); //[2, 4, 5, 7]
console.log(arr); //[2, 4, 5, 7]
9. slice(start, end) 可从已有的数组中返回选定的元素。 start指定开始的位置,end指定结束的位置,end可以不用。
let arr = [7, 5, 4, 2];
const ret = arr.slice(0, 2);
console.log(ret); //[7, 5]
console.log(arr); //[7, 5, 4, 2]
const ret = arr.slice(0);
console.log(ret); //[7, 5, 4, 2]
console.log(arr); //[7, 5, 4, 2]
const ret = arr.slice(-2, -1);
console.log(ret); //[4]
console.log(arr); //[7, 5, 4, 2]
10. splice(index,howmany,item1,.....,itemX) 向/从数组中添加/删除/替换项目,然后返回被删除的项目。 会改变原数组
删除:
let arr = [7, 5, 4, 2];
const ret = arr.splice(0, 2);
console.log(ret); //[7, 5]
console.log(arr); //[4, 2]
添加:
let arr = [7, 5, 4, 2];
const ret = arr.splice(2, 0, 99);
console.log(ret); //[]
console.log(arr); //[7, 5, 99, 4, 2]
替换:
let arr = [7, 5, 4, 2];
const ret = arr.splice(2, 1, 99);
console.log(ret); //[4]
console.log(arr); //[7, 5, 99, 2]
11. toString() 任何对象都具有的方法 把数组转换为字符串描述,并返回结果。
let arr = [7, 5, 4, 2];
const ret = arr.toString();
console.log(ret); //7,5,4,2 string类型
console.log(arr); //[7, 5, 99, 2]
12. valueOf() 返回 Array 对象的原始值。
let arr = [7, 5, 4, 2];
const ret = arr.valueOf();
console.log(ret); //[7, 5, 4, 2]
console.log(arr); //[7, 5, 4, 2]
13. forEach() 调用数组的每个元素,并将元素传递给回调函数,该方法没有返回值。
let arr = [7, 5, 4, 2];
arr.forEach((item, index) => {
console.log(item, index);
});
14. sort() 对数组的每一项进行排序。 会改变原数组
升序:
let arr = [7, 5, 4, 2];
const rst = arr.sort((a, b) => {
return a - b;
});
console.log(arr); //[2, 4, 5, 7]
console.log(rst); //[2, 4, 5, 7]
降序:
let arr = [7, 5, 4, 2];
const rst = arr.sort((a, b) => {
return b - a;
});
console.log(arr); //[7, 5, 4, 2]
console.log(rst); //[7, 5, 4, 2]
15. filter() 对数组进行筛选,并且返回新的数组。不会改变原数组。
let arr = [7, 5, 4, 2];
const rst = arr.filter((item, index) => {
return item > 4;
});
console.log(arr); //[7, 5, 4, 2]
console.log(rst); //[7, 5]
let arr = [7, 5, 4, 2];
const rst = arr.filter((item, index) => {
return index > 2;
});
console.log(arr); //[7, 5, 4, 2]
console.log(rst); //[2]
16. indexOf() 从前往后搜索,返回给定参数的索引值,没有就返回-1
let arr = [7, 5, 4, 2];
const rst1 = arr.indexOf(1);
const rst2 = arr.indexOf(5);
console.log(rst1); //-1
console.log(rst2); //1
17. lastIndexOf() 从后往前搜索, 返回给定参数的索引值, 没有就返回-1
let arr = [7, 5, 4, 5, 2];
const rst1 = arr.lastIndexOf(1);
const rst2 = arr.lastIndexOf(5);
console.log(rst1); //-1
console.log(rst2); //3
18. some() 判断数组中是否至少有一项满足条件,有就返回true,都不满足就返回false。不会改变原数组。
let arr = [7, 5, 4, 5, 2];
const rst1 = arr.some((item, index) => {
return item > 10;
});
const rst2 = arr.some((item, index) => {
return item > 5;
});
console.log(rst1); //false
console.log(rst2); //true
console.log(arr); //[7, 5, 4, 5, 2]
19. every() 数组每一项都满足条件就返回true,有一项不满足就返回false。不会改变原数组。
let arr = [7, 5, 4, 5, 2];
const rst1 = arr.every((item, index) => {
return item > 10;
});
const rst2 = arr.every((item, index) => {
return item > 1;
});
console.log(rst1); //false
console.log(rst2); //true
console.log(arr); //[7, 5, 4, 5, 2]
20. map() 返回原数组经过函数处理后形成的一个新的数组。
let arr = [7, 5, 4, 5, 2];
const rst1 = arr.map((item, index) => {
return item += 1;
});
console.log(rst1); //[8, 6, 5, 6, 3]
console.log(arr); //[7, 5, 4, 5, 2]
21. reduce() 接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
//initialValue是total的初始值
// currentIndex, arr这两个参数可选
对数组每一项进行累加:
let arr = [7, 5, 4, 5, 2];
const rst1 = arr.reduce((total, item) => {
return total += item;
}, 0);
console.log(rst1); //23
console.log(arr); //[7, 5, 4, 5, 2]
22. reduceRight() 方法的功能和 reduce() 功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。
注意:以下7种方法会改变原数组。
//push pop unshift shift splice reverse sort 7种