将一个数组定义为:
const foo = [1, 2, 3];
现在,如果我想要替换第二个元素,可以这样做:
foo[1] = 4;
或者
foo.splice(1,1,4);
。
const foo = [1, 2, 3];
console.log([...foo.slice(0, 1), 4, ...foo.slice(2)]);
// I know this creates a new array unlike the above two ways.
但是当我们使用展开运算符(shallow copying)来复制对象时,我们可以动态地覆盖一个属性,例如:
const someObject = {
a: 1,
b: 2,
c: 3
}
const propertyToChange = 'b';
const newObject = { ...someObject, [propertyToChange]: 4 };
那么,对于数组是否有类似的东西呢?也许下面这样的东西可以基于索引来更改元素。
const newArray = [...oldArray, [dynamicIndex]: 4 ];
const newArray = [...oldArray, [dynamicIndex]: 4 ];
这样的语法没有被实现,可能是因为它与对象的语法有些冲突。这可能是原因吗? - Ramesh Reddy