1 . concat()
连接数组, 返回值是一个添加后的数据, 原数组没改变
(1) 直接添加
var arr = [10,20,30,40]
var arr2 = arr.concat(40,50)
console.log(arr) // [10,20,30,40]
console.log(arr2) // [10,20,30,40,40,50]
(2) 添加数组
var arr = [10,20,30,40]
var arr2 =arr.concat([50,60])
console.log(arr3) // [10,20,30,40,50,60]
2 . pop():弹出数组中最后一个元素,并返回这个元素
let arr = [1,2,3,4,5,6]
let result = arr.pop()
console.log(arr) // [1, 2, 3, 4, 5]
console.log(result) // 6
3 . join()
将数组所有元素连接成一个字符串并返回这个字符串,不会改变原数组
var arr = [10,20,30,40]
var arr2 = arr.join('=')
console.log(arr) // [10,20,30,40]
console.log(arr2) // 10=20=30=40
4 . push():添加一个或多个元素到数组末尾,并返回新的长度
let arr = [1,2,3,4,5,6]
arr.push(7,8)
console.log(arr) // [1, 2, 3, 4, 5, 6, 7, 8]
console.log(arr.length) // 8
5 . reverse()
翻转数组 将数组进行翻转 最后一项变为第一项 倒数第二项变为第二项 以此类推 会改变原数组
var arr = [10,20,30,40]
arr.reverse()
console.log(arr) [40,30,20,10]
6 . shift():弹出数组的第一个元素,并返回这个元素
var arr = [10,20,30,40]
var arr2 = arr.shift()
console.log(arr2) 10
console.log(arr) [20,30,40]
7 . unshift():在数组开头添加一个或多个元素,并返回新的长度
let arr = [1,2,3,4,5,6]
arr.unshift(-1,0)
console.log(arr) // [-1, 0, 1, 2, 3, 4, 5, 6]
console.log(arr.length) // 8
8 . slice()
查找数组中选定范围的值 返回值是一个数组 不会改变原来的数组
该方法有两个参数 slice( start , end )
第一个参数:start:从那一个下标开始查找 如果为负数则倒着查找
第二个参数: end : 结束位置 start <= 范围 < end
(1)从下标 1 开始查找 到 下标 2 (不包含下标2)所以返回的就是 【20】
var arr = [10,20,30,40]
var arr2 = arr.slice(1,2)
console.log(arr2) // [20]
console.log(arr) // [10,20,30,40]
(2)不写结束位置 会返回原数组
var arr = [10,20,30,40]
var arr2 = arr.slice(0)
console.log(arr2) // [10,20,30,40]
console.log(arr) // [10,20,30,40]
(3)起始位置为负数 会倒着找 下面代码 从 尾数 开始找 结果如下
var arr = [10,20,30,40]
var arr2 = arr.slice(-2) // 从倒数第2个字符起一直到结束
var arr3 = arr.slice(0,-3) // 从开始一直到倒数第3个字符的前一个字符
console.log(arr2) // [30,40]
console.log(arr3) // [10,20]
9 . sort():给数组排序(默认从小到大)
let arr = [1,6,4,3,5,2]
arr.sort()
console.log(arr) // [1, 2, 3, 4, 5, 6]
10 . indexOf()
有两个参数:1 要查找的项, 2查找的起点索引。其中, 从数组的开头(位置 0)开始向后查找 存在返回位置索引,不存在返回-1
var arr = [2, 10, 50, 5, 4]
console.log(arr.indexOf(50)) // 2
console.log(arr.indexOf(60)) // -1
11 . forEarm():传入一个函数,把数组的每一项作为函数的参数被调用,不改变原数组
let arr = [1, 2, 3, 4, 5, 6];
arr.forEach((item) => {
console.log(item) // 依次输出1到6
});
12 . map():传入一个函数,把数组的每一项作为函数的参数被调用,然后用函数每次的返回值组成新的数组并返回,不改变原数组
let arr = [1, 2, 3, 4, 5, 6];
let newArr = arr.map((item) => item*item); // 箭头函数的简写,不用写return
console.log(arr) // [1, 2, 3, 4, 5, 6]
console.log(newArr) // [1, 4, 9, 16, 25, 36]
13 . flat()
方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
方法最基本的作用就是数组降维
var arr1 = [1, 2, [3, 4,5,[6,7]];
arr3.flat(Infinity); // [1,2,3,4,5,6,7]
14 . reduce():接受两个参数,函数和初始值,其中函数接受两个参数,那个初始值和数组的每一项,每次用初始值对数组的每一项进行操作并返回这个新的初始值(函数返回),不改变原数组
初始值为0,sum代表了初始值,每次用sum+= item,最后初始值为21并被返回(reduce返回)
let arr = [1, 2, 3, 4, 5, 6];
let result = arr.reduce((sum, item) => sum+=item,0);
console.log(arr) // [1, 2, 3, 4, 5, 6]
console.log(result) // 21
15 . filter():传入一个函数,把数组的每一项作为函数的参数被调用,在函数内部判断符合条件的每一项,把它们组成新的数组并返回,不改变原数组
let arr = [1, 2, 3, 4, 5, 6];
let newArr = arr.filter((item) => item%2 === 0); // 取数组中的偶数
console.log(arr) // [1, 2, 3, 4, 5, 6]
console.log(newArr) // [2, 4, 6]