JS 中数组的 9 种破坏性方法

109 阅读1分钟

关于在 js 中数组的破坏性方法总结,通常我们熟悉的是 7 种(看了一部分文章,通常被提到的也是 7 种),可能是因为随着 vue 的兴起且很多开发者对相关源码的深入研究做出的相关总结。

下面为大家列出常用的这 7 种方法:

  1. push
  2. pop
  3. shift
  4. unshift
  5. sort
  6. reverse
  7. splice

除了以上 7 种 API 笔者自己也好奇除此之外有没有其他方法也具有破坏性特征,经过一番查阅和测试确实又发现了 2 种具有破坏特性的方法,分别是:

  1. fill - 数组填充

三个参数:

  1. newVal(必需):要替换的新值。
  2. start(可选):从该位置开始替换数据。
  3. end(可选):到该位置前停止替换数据,默认等于数组长度。
const arr = new Array(5);
const arr2 = arr.fill('x', 2, 4)
console.log(arr, arr2);

const xxx = [1, 2, 3]
const aaa = xxx.join(',')
console.log(xxx, aaa)

// 结果
// xxx: [空属性 × 2, 'x', 'x', 空白]
// aaa: [空属性 × 2, 'x', 'x', 空白]
  1. copyWithin - 把指定位置项复制到其它位置

三个参数:

  1. index(必需):从该位置开始替换数据。如果为负值,表示倒数。
  2. start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示从末尾开始计算。
  3. end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示从末尾开始计算。
const arr = ['xxx', 'xxx', 'xxx', 'xxx', '---', '----']
const arr2 = arr.copyWithin(0, 4, 6)
console.log(arr, arr2);

// 结果
// arr: ['---', '----', 'xxx', 'xxx', '---', '----'] 
// arr2: ['---', '----', 'xxx', 'xxx', '---', '----'] 

以上是笔者个人的简单整理,希望对大家有点滴帮助,如果你还知道更多相关的 API 欢迎指出讨论 [爱心]