1. push() 和 pop()
push() 方法可以向数组末尾添加一个或多个元素
pop() 方法可以删除数组最后一个元素,并返回被删除的元素
2. unshift() 和 shift()
unshift() 方法可以向数组的开头添加一个或多个元素
shift() 方法可以删除数组开头的一个元素,并返回被删除的元素
3. join()
join() 方法可以将数组转换成字符串,默认使用逗号分隔
let arr = [1,2,3];
console.log(arr.join()); // 1,2,3
console.log(arr.join("#")); // 1#2#3
// 分隔符可自定义
4. sort()
sort() 方法可以将数组元素排序,数组元素可以是字母或数字,默认按升序排列
注意: 使用数字排序,你必须通过一个函数作为参数来调用,函数指定数字按升序还是降序排列
let arr = [5,10,80,6,77];
console.log(arr.sort()); // [10,5,6,77,80]
console.log(arr.sort((a,b) => a - b)); // [5, 6, 10, 77, 80]
console.log(arr.sort((a,b) => b - a)); // [80, 77, 10, 6, 5]
5. concat()
concat() 方法用于连接两个或多个数组,并返回一个新数组
let arr = [1, 2, 3];
let arr1 = ["a", "b", "c"];
console.log(arr.concat(arr1)) // [1, 2, 3, "a", "b", "c"]
6. isArray()
isArray() 方法可以判断一个对象是否为数组
7. reverse()
reverse() 方法用于翻转数组
let arr = [1, 2, 3];
console.log(arr.reverse()) // [3, 2, 1]
8. toString()
toString() 方法可以将数组转换为字符串,返回转换过的字符串,不影响原数组
9. slice()
slice(start,end) 方法用于分割数组,并返回一个新的数组,里面参数可选,从start参数开始的元素到end参数处结束,但不包括这两个
let arr = [1, 2, 3, 4, 5];
console.log(arr.slice()); // [1, 2, 3, 4, 5]
console.log(arr.slice(1, 3)); // [2, 3]
console.log(arr.slice(-5, -3)); // [1, 2]
10. splice()
splice() 方法可以从数组中添加或删除项目,返回删除的项目,会改变原数组
let arr = [1, 2, 3, 4, 5];
console.log(arr.splice(2, 1)); // [3]
// 第一个参数是元素的索引(必填),第二个参数是删除的个数,填0则不会删除(可选)
console.log(arr); // [1, 2, 4, 5]
console.log(arr.splice(1, 1, 3)); // [2]
// 第三个或之后的参数表示要添加的项目(可选)
console.log(arr); // [1, 3, 4, 5]
11. indexOf() 和 lastIndexOf()
indexOf(val,index) 方法在数组中寻找指定元素,并返回其位置,val表示要搜索的元素(必填),index表示起始位置(可选)
注意: 搜索从头开始(从指定位置开始),未找到返回-1,若val出现多次,则返回第一次出现的位置
lastIndexOf(val,index) 用法与上面类似,区别是从数组末尾开始
12. valueOf()
valueOf() 方法返回该数组,不改变原数组
13. copyWithin()
copyWithin(target,start,end) 方法将数组元素复制到数组中的另一个位置,并覆盖原数组
target表示复制到的索引位置(必填)start表示开始的位置(可选)end表示结束的位置(可选)
let arr = [1, 2, 3, 4, 5];
console.log(arr.copyWithin(2, 0, 2)); // [1, 2, 1, 2, 5]
console.log(arr); // [1, 2, 1, 2, 5]
14. fill()
fill(val,start,end) 方法用静态值替换数组中的指定元素,会覆盖原数组
val表示用于替换的值(必填)start表示开始的索引可选)end表示结束的索引(可选),若不指定开始和结束的位置,则替换所有元素
let arr = [1, 2, 3, 4, 5];
console.log(arr.fill("a",1,2)); // [1, "a", 3, 4, 5]
console.log(arr.fill("b")); // ["b", "b", "b", "b", "b"]
console.log(arr); // ["b", "b", "b", "b", "b"]
15. from()
from() 方法可将字符串转化为数组
console.log( Array.from("abcdefg"));
// ["a", "b", "c", "d", "e", "f", "g"]
16. includes()
includes(val,start) 方法用于确定数组是否包含指定的元素,若包含返回true,不包含返回false
val表示要搜索的元素(必填)start表示起始位置(可选),默认为0
17. keys()
keys() 方法返回带有数组键的 Array Iterator 对象
18. forEach()
forEach(function(val,index,arr),thisval) 方法对数组进行循环遍历,按顺序给每个元素调用一次函数,该方法没有返回值
val当前元素(必填),index当前索引(可选),arr当前原数组(可选),thisval要传递给函数用作this的值(可选)
19. map()
map(function(val,index,arr),thisval) 方法按顺序为数组中每个元素调用一次提供的函数,返回每次调用函数的结果组成的新数组,不会改变原数组
参数与forEach用法一样
let arr = [1, 2, 3, 4, 5];
console.log(arr.map(val => val * 2)); // [2, 4, 6, 8, 10]
20. filter()
filter(function(val,index,arr),thisval) 方法过滤数组,返回满足条件的新数组,不会改变原数组
let arr = [1, 2, 3, 4, 5];
console.log(arr.filter(val => val > 3)); // [4, 5]
console.log(arr); // [1, 2, 3, 4, 5]
21. some()
some(function(val,index,arr),thisval) 方法判断数组中是否有满足条件的元素,若有返回true(不检查之后的元素),若无返回false
22. entries()
entries() 方法返回带有键/值对的 Array Iterator 对象
23. every()
every(function(val,index,arr),thisval) 方法判断数组中每一项是否满足条件,若所有都满足返回true,有一项不满足返回false
24. find()
find(function(val,index,arr),thisval) 方法查找满足条件的元素,找到了就返回该元素的值(不继续查找),没找到返回undefined
25. findIndex()
findIndex(function(val,index,arr),thisval) 方法查找满足条件的数组元素,满足的话返回该元素的索引(不继续查找),否则返回-1
26. reduce() 和 reduceRight()
reduce(function(total,val,index,arr),初始值) 方法使用指定函数将数组缩减为单个值(返回计算后最终的结果)从左到右的值依次调用函数
total(累加器)表示初始值或函数返回的结果,val当前值,index当前索引(可选),arr当前数组(可选),初始值(可选)
reduceRight() 方法用法一致,顺序不同(从右到左)