JavaScript数组常用方法整理
js数组常用方法整理
- Array.push()
向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变。
let arr = [1,2,3]
arr.push(4,5,6)
console.log('arr.push',arr) // [1,2,3,4,5,6]
- Array.pop()
删除并返回数组的最后一个元素,若该数组为空,则返回undefined。原数组改变。
let arr = [1,2,3,4,5,6]
let del = arr.pop()
console.log('arr.pop',del) //6
console.log('pop',arr) //[1,2,3,4,5]
- Array.unshift()
向数组的开头添加一个或多个元素,并返回新的数组长度。原数组改变。
let arr = [1,2,3,4,5,6]
let del = arr.unshift(-1,-2,-3)
console.log('length',del) //length:9
console.log('arr',arr) //[-1,-2,-3,1,2,3,4,5,6]
- Array.shift()
删除数组的第一项,并返回第一个元素的值。若该数组为空,则返回undefined。原数组改变。
let arr = [1,2,3,4,5,6]
let add = arr.shift()
console.log('length',add) // 返回删除的元素
console.log('arr',arr) // [2,3,4,5,6]
------------------------------------------
let arrShift = []
let del = arrShift.shift()
console.log('del',del) // undefined
console.log('arrShift',arrShift) // []
- Array.concat(arr1,arr2...)
合并两个或多个数组,生成一个新的数组。原数组不变。
let arr = [1,2,3]
let arr1 = [4,5,6]
let arr2 = ['a','b','c']
let arrConcat = []
console.log(arrConcat.concat(arr,arr1,arr2)) //[1, 2, 3, 4, 5, 6, "a", "b", "c"]
- Array.join()
将数组的每一项用指定字符连接形成一个字符串。默认连接字符为 “,” 逗号。
let arr = [1, 2, 3, 'A', 'B', 'C', "a", "b", "c"]
let arrJoin = arr.join('/')
console.log('arr',arr) // [1, 2, 3, "A", "B", "C", "a", "b", "c"]
console.log('arrJoin',arrJoin) // 1/2/3/A/B/C/a/b/c
-----------------------------------------------------------
若没有用指定字符分割
let arrJoin1 = arr.join()
console.log('arrJoin1',arrJoin1) //1,2,3,A,B,C,a,b,c
-
Array.reverse()
将数组倒序。原数组改变。 -
Array.sort()
对数组元素进行排序。按照字符串UniCode码排序,原数组改变。 -
Array.map(function)
原数组的每一项执行函数后,返回一个新的数组。原数组不变。(注意该方法和forEach的区别)。 -
Array.slice(start,end)
从start开始,end之前结束,不到end;如果不给end值,从start开始到数组结束。start可以给负值,-1表示数组最后位置,-2表示倒数第二个,以此类推,顾前不顾后。 -
Array.splice(index,howmany,arr1,arr2...) ,
删除元素并添加元素,从index位置开始删除howmany个元素,并将arr1、arr2...数据从index位置依次插入。howmany为0时,则不删除元素。原数组改变。 -
.Array.forEach(function)
用于调用数组的每个元素,并将元素传递给回调函数。原数组不变。(注意该方法和map的区别,若直接打印Array.forEach,结果为undefined)。 -
.Array.filter(function),
过滤数组中,符合条件的元素并返回一个新的数组。 -
Array.every(function)
对数组中的每一项进行判断,若都符合则返回true,否则返回false。 -
Array.some(function)
对数组中的每一项进行判断,若都不符合则返回false,否则返回true。 -
Array.reduce(function),
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
let arr = [1, 2, 3, 'A', 'B', 'C', "a", "b", "c"]
let arrRes = arr.reverse()
console.log('arr',arr) // ["c", "b", "a", "C", "B", "A", 3, 2, 1]
console.log('arrRes',arrRes) // ["c", "b", "a", "C", "B", "A", 3, 2, 1]
- Array.sort()
对数组元素进行排序。按照字符串UniCode码排序,原数组改变。
let arr = [8, 5, 3, 'C', 'A', 'B', "g", "f", "e"]
console.log('arr',arr) //[3, 5, 8, "A", "B", "C", "e", "f", "g"]
- Array.map(function)
原数组的每一项执行函数后,返回一个新的数组。原数组不变 - Array.slice(start,end)
从start开始,end之前结束,不到end;如果不给end值,从start开始到数组结束。start可以给负值,-1表示数组最后位置,-2表示倒数第二个,以此类推,顾前不顾后。
let arr = [1,2,3,4,5,6,8,9]
console.log(arr.slice(1,5)) //[3, 4, 5, 6]
console.log(arr.slice(2)) //[4,5,6,8,9]
console.log(arr.slice(-3,-1)) // [6, 8]
- .Array.splice(index,howmany,arr1,arr2...)
删除元素并添加元素,从index位置开始删除元素,并将arr1、arr2...数据从index位置依次插入。删除元素为0时,则不删除元素。原数组改变。
let arr = [1,2,3,4,5,6,8,9]
console.log(arr.splice(1,5)) //[2, 3, 4, 5, 6]
console.log(arr.splice(2)) //[9]
console.log(arr.splice(-3,-1)) // []
-
Array.forEach(function)
用于调用数组的每个元素,并将元素传递给回调函数。原数组不变。(注意该方法和map的区别,若直接打印Array.forEach,结果为undefined)。 坠落天使.jpg