JS数组常用方法

193 阅读3分钟

1.push()尾部追加,类似于压栈,且会改变原数组。

const arr = [1, 2, 3]
arr.push(5)
console.log(arr) // [1, 2, 3, 5]

2.pop()尾部弹出,类似于出栈,且会改变原数组。

const arr = [1, 2, 3]
const popVal = arr.pop()
console.log(popVal) // 3
console.log(arr) // [1, 2]

3.unshift()头部压入,类似于入队,且会改变原数组。

const arr = [1, 2, 3]
const popVal = arr.pop()
console.log(popVal) // 3
console.log(arr) // [1, 2]

4.shift()头部弹出,且会改变原数组。

const arr = [1, 2, 3]
const shiftVal = arr.shift()
console.log(shiftVal) // 1
console.log(arr) // [2, 3]

5.concat() 在当前数组尾部拼接传入的数组,然后返回一个新数组,原数组不变。

const arr = [1, 2, 3]
const arr2 = arr.concat([7, 8, 9])
console.log(arr) // [1, 2, 3]
console.log(arr2) // [1, 2, 3, 7, 8, 9]

6. indexOf() 在数组中寻找该值,找到则返回其下标,找不到则返回-1

const arr = [1, 2, 3]
console.log(arr.indexOf(2)) // 1
console.log(arr.indexOf(0)) // -1

7. includes()数组查找该值,找到则返回true,找不到则返回false

const arr = [1, 2, 3]
console.log(arr.includes(2)) // true
console.log(arr.includes(4)) // false

8. join()数组分割成字符串,并返回该字符串,传入什么参数则代表使用此参数作为分割符,不传值则默认逗号隔开,原数组不变。

const arr = [1, 2, 3]
console.log(arr.join()) // ‘1, 2, 3’
console.log(arr) // [1, 2, 3]

9. reverse() 翻转原数组,并返回已完成翻转的数组,且会改变原数组。

const arr = [1, 2, 3]
console.log(arr.reverse()) // [3, 2, 1]
console.log(arr) // [3, 2, 1]

10. slice(start,end)start 开始截取end,但是不包括end

const arr = [1, 2, 3, 4, 5]
console.log(arr.slice(1, 4)) // [2, 3, 4]
console.log(arr) // [1, 2, 3, 4, 5]

11. splice(start, deleteCount, item1, item2……) 用于添加、删除、替换数组中的元素

  • start参数 开始的位置
  • deleteCount要截取的个数
  • 后面的items为要添加的元素
  • 如果deleteCount0,则表示不删除元素,从start位置开始添加后面的几个元素到原始的数组里面。 返回值为由被删除的元素组成的一个数组。
    如果只删除了一个元素,则返回只包含一个元素的数组。
    如果没有删除元素,则返回空数组。 这个方法会改变原始数组,数组的长度会发生变化
const arr3 = [1, 2, 3, 4, 5, 6, 7, "f1", "f2"];
const arr4 = arr3.splice(2, 3) // 删除第三个元素以后的三个数组元素(包含第三个元素)
console.log(arr4); // [3, 4, 5];
console.log(arr3); // [1, 2, 6, 7, "f1", "f2"]; 原始数组被改变

const arr5 = arr3.splice(2, 0, "li", "si"); 
// 从第2位开始删除0个元素,插入"li","si"
console.log(arr5); // [] 返回空数组
console.log(arr3); // [1, 2, "li", "si", 6, 7, "f1", "f2"]; 原始数组被改变

const arr6 = arr3.splice(2, 3, "wang", "wu");
// 从第 2 位开始删除 3 个元素,插入"wang", "wu"
console.log(arr6); // ["li", "si", 6]
console.log(arr3); //[ 1, 2, "wang", "wu", 7, "f1", "f2"]

const arr7 = arr3.splice(2); // 从第三个元素开始删除所有的元素
console.log(arr7);// ["wang", "wu", 7, "f1", "f2"]
console.log(arr3); // [1, 2]

12. sort() 对数组的元素进行排序,并返回数组。

const arr = [1, 2, 3]
arr.sort((a, b) => b - a)
console.log(arr) // [3, 2, 1]

13. toString() 将数组转化成字符串,并返回该字符串,逗号隔开,原数组不变。

const arr = [1, 2, 3, 4, 5]
console.log(arr.toString()) // ‘1, 2, 3, 4, 5’
console.log(arr) // [1, 2, 3, 4, 5]