关于在 js 中数组的破坏性方法总结,通常我们熟悉的是 7 种(看了一部分文章,通常被提到的也是 7 种),可能是因为随着 vue 的兴起且很多开发者对相关源码的深入研究做出的相关总结。
下面为大家列出常用的这 7 种方法:
pushpopshiftunshiftsortreversesplice
除了以上 7 种 API 笔者自己也好奇除此之外有没有其他方法也具有破坏性特征,经过一番查阅和测试确实又发现了 2 种具有破坏特性的方法,分别是:
fill- 数组填充
三个参数:
- newVal(必需):要替换的新值。
- start(可选):从该位置开始替换数据。
- 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', 空白]
copyWithin- 把指定位置项复制到其它位置
三个参数:
- index(必需):从该位置开始替换数据。如果为负值,表示倒数。
- start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示从末尾开始计算。
- 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 欢迎指出讨论 [爱心]