我有几个对象数组
a=[ {v:10}, {v:11}, {v:12}, {v:13} ]
b=[ {v:20}, {v:21}, {v:22}, {v:23} ]
(etc(
以及我要替换对象的引用列表。
我没有 index 进入数组,但是我确实有引用我要替换的项目
诸如此类的参考: s1=a[2]
或 s1=b[0]
我如何使用此参考来替换实际数组的元素而不知道其引用哪个数组?
这不起作用:s1 = {v:'new'}
,因为它仅替换S1,而不是数组的元素
这不是有用的s1.v='new'
,就像实际上一样,我的对象很复杂,具有许多属性,我不想更新它们。
谢谢!
如果您的对象只是普通的 Object
s(或至少所有相同的普通类型(,则您 can can 删除所有属性并在新属性中交换:
const replaceProperties = (dest, src) => {
Object.keys(dest).forEach(key => {
delete dest[key];
});
Object.assign(dest, src);
};
replaceProperties(s1, {v: 'new'});
这不是一个好主意,但由于几个原因,请查看您是否可以开始将索引到数组中。
如果您的对象都是相同的 shape (即始终具有相同的属性(,那么利用它的优势要好得多,并且是重复 s1.v = 'new'
s的多效率。/p>
Object.assign(s1, {v: 'new'});