使用扩展语法中的Object.assign等效项通过索引更新数组项

问题描述 投票:0回答:1

我最近在尝试更新数组索引时偶然发现了这个gem;

const a = [1,2,3];
Object.assign(a, {1: 10}) );
// [1, 10, 3]

这使我可以在一行中以编程方式更新特定数组项的值,而不更新原始数组的值。

但是,当我尝试将其转换为传播语法时:

[...a, ...{1: 10}]

它实际上不起作用,给我一个错误:

Uncaught TypeError: {(intermediate value)} is not iterable

假设对象分配向对象添加了可迭代的原型以使第一个选项起作用,而扩展的合成语法更通用并且不包括此功能,我是正确的吗?

谢谢

javascript arrays reactjs ecmascript-6 immutability
1个回答

0
投票

您真的不需要扩展运算符将对象添加到数组中

var a = [1,10]
var b = {a:15, b: 18}

var c = [...a, b]
console.log(c)
© www.soinside.com 2019 - 2024. All rights reserved.