1 concat()
连接两个或更多的数组,并返回结果
let arr = [1,2,3]
let arr2 = [4,5,6]
let arr3 = [7,8,9]
arr.concat(arr2,arr3)
console.log(arr) // [1,2,3,4,5,6,7,8,9]
2 join()
把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔
参数可选,指定要使用的分隔符
let arr = new Array(3)
arr[0] = 1
arr[1] = 2
arr[2] = 3
console.log(arr.join(',')) //1,2,3
3 pop()
删除并返回数组的最后一个元素
let arr = ["1", "2", "3", "4"];
arr.pop();
console.log(arr) // ["1","2","3"]
4 push()
向数组的末尾添加一个或更多元素,并返回新的长度
let arr = [1,2,3];
arr.push(4)
console.log(arr) // [1,2,3,4]
5 shift()
删除并返回数组的第一个元素。
let arr = [1,2,3,4]
arr.shift()
console.log(arr) // [2,3,4]
6 unshift()
向数组的开头添加一个或更多元素,并返回新的长度。
letarr= [2,3,4]
arr.unshift(1)
console.log(arr) // [1,2,3,4]
7 reverse()
反转数组中元素的顺序
var fruits = [1,2,3,4];
fruits.reverse()
console.log(fruits ) // [4,3,2,1]
8 splice(index,howmany,item)
从数组中添加或删除元素。
参数 :
index 规定从何处添加元素
howmany 可选。规定应该删除多少元素。必须是数字,但可以是 “0”。
item1, …, itemX 可选。要添加到数组的新元素
let arr = [1,2,3,4]
arr.splice(0,1)
console.log(arr) // [2,3,4]
9 slice()
选取数组的的一部分,并返回一个新数组。不会改变原数组。
参数:
start 可选,规定从何处开始选取。(数组下标)
end 可选,规定从何处结束选取。(数组下标),结束位置不会被截取
let arr = [1,2,3,4]
console.log(arr.slice(1,3)) // [2,3]
10 indexOf()
搜索数组中的元素,并返回它所在的位置。
let arr = [5,2,1,3,4]
console.log(arr.indexOf(1))
// 2
11 includes()
判断一个数组是否包含一个指定的值。
let arr = [5,2,1,3,4]
console.log(arr.includes(1))
// true
console.log(arr.includes(0))
// false
12 every()
检测数值元素的每个元素是否都符合条件。
只有全部符合条件才会返回true,否则返回false
可以用来做单选全部选中,然后全选选中的业务。
// every循环定义的临时数组
// every()方法,针对数组中的每一个元素进行比对
// 只要有一个元素比对结果为false则返回false
// 反之要所有的元素比对结果为true才为true
let result = tempArr.every(item=>{
// 对数组中每一项的选中状态比较 是否为选中状态 也就是true
return item.checked == true
})
13 find()
返回符合传入测试(函数)条件的数组元素。
let arr = [5,2,1,3,4]
let index = arr.find(item=>item<2)
console.log(index) // 1
13 findIndex()
返回符合传入测试(函数)条件的数组元素索引。
可以用来对数组去重
let index = state.findIndex(item => {
return item.id === list.id
})
if (index !== -1) {
state[index].count += 1;
} else {
list.checked = false
state.push(item)
}
14 forEach()
数组每个元素都执行一次回调函数。
可以对数组进行深拷贝,还可以添加一些判断条件
// 定义一个临时数组
let tempArr = []
let state = [1,1,{hobby:'王者荣耀'}]
state.forEach(item=>{
tempArr.push(item)
})
console.log(tempArr);、//[1,1,{hobby:'王者荣耀'}]
15 filter()
检测数值元素,并返回符合条件所有元素的数组。
let arr = [5,2,1,3,4]
let index = arr.filter(item=>{
return item>3
})
console.log(index) // [5, 4]
16 map()
通过指定函数处理数组的每个元素,并返回处理后的数组。
let arr = [5,2,1,3,4]
arr.map(value=>{
return value*value
})
// [25, 4, 1, 9, 16]
17 some()
检测数组元素中是否有元素符合指定条件。
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
let arr = [5, 2, 1, 3, 4];
let temp = arr.some((value) => {
return value > 6
});
console.log(temp) // false
18 reduce
arr.reduce(function(prev,cur,index,arr){
...
}, init);
arr 表示原数组;
prev 表示上一次调用回调时的返回值,或者初始值 init;
cur 表示当前正在处理的数组元素;
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
init 表示初始值。
// 获取最大值
let arr = [1,9,3,5,7]
let maxValue = arr.reduce(function (v1, v2) { return v1 > v2 ? v1 : v2 }, 0)
console.log('最大值', maxValue) //9