JavaScript 数组 with() 方法

JavaScript with() 语法

with() 是 JavaScript 数组的一个方法,它用于将 “数组指定下标处的元素” 替换成 “另一个值”,然后返回一个新数组。

语法:

arr.with(index, value)

说明:

with() 方法可以接收 2 个参数。

  • index(必选):表示你想要替换元素的下标。
    • 如果 index 是负数,则表示从数组末尾开始计算索引。例如,-1 表示倒数第一个元素,-2 表示倒数第二个元素,以此类推。
    • 如果 index 超出数组的有效范围(即 index >= arr.length 或 index < -arr.length),则会抛出 RangeError 错误。
  • value(必选):被替换成的新值。

with() 方法会返回被替换后的数组。

注意:

  • with() 是一个 “非破坏性” 方法,它不会改变原数组。
  • with() 方法是现有 splice() 方法的 “非破坏性” 替代方案,用于仅替换单个元素而不需要删除或插入。

JavaScript with() 摘要

属于 JavaScript Array 对象
使用频率
修改原数组
官方文档 查看
MDN 查看

JavaScript with() 示例

接下来,我们通过几个简单的例子来讲解一下 JavaScript with() 方法是如何使用的。

示例 1:with() 基本用法

const arr = ["红", "橙", "黄", "绿", "蓝"];
const result = arr.with(0, "red");

console.log(arr);
console.log(result);

运行结果如下。

[ '红', '橙', '黄', '绿', '蓝' ]
[ 'red', '橙', '黄', '绿', '蓝' ]

分析:

从结果可以看出,with() 方法不会修改原数组,而是返回被替换后的数组。arr.with(0, "red") 表示将下标 0 处的元素替换成 "red"。

示例 2:with() 链式调用其他数组方法

const arr = [1, 2, 3, 4, 5];
const result = arr.with(0, 10).map(x => x * x);
console.log(result);

运行结果如下。

[ 100, 4, 9, 16, 25 ]

分析:

由于 with() 方法本身会返回替换后的数组,我们可以链式使用其他数组方法。

“破坏性” 方法 vs “非破坏性” 方法

在 JavaScript 中,数组的 “破坏性” 方法以及它们对应的 “非破坏性” 方法,总结如下表所示。

破坏性方法 vs 非破坏性方法
破坏性 非破坏性 说明
reverse() toReversed() 反转数组
sort() toSorted() 数组排序
splice() toSpliced() 修改数组(添加、删除或替换元素)
arr[i] = val(索引赋值) with() 替换数组某个元素

上一篇: toSpliced()

下一篇: forEach()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号