删除以前的对象以仅保留最新的对象



上下文:我正在创建一个对象来设置颜色"红色";然而,到了谷歌排行榜的最新一页,我不断地得到";堆叠的";对象。我想删除以前的对象,只保留最新的对象。

我试着做这样的事情:

let indices = indexSum;
for (let i = 1; i <= slices.length; i++) {
if (Object.keys(lossColor).length >= 2) {
delete lossColor[i - 1];
}
lossColor[i] = { color: "red" };
}

基本上,只要我的初始对象中的对象数为2,我就想删除以前的索引(因此是I-1)。

我还试图使用spread运算符(感谢SO中的一位用户回答了我的另一个问题)将现有对象替换为添加的最新对象。

这是他的实现(然而,我一直在添加所有对象,而没有删除以前的对象)

for (let i = 1; i <= indices; i++) {
lossColor = { ...lossColor, [i]: { color: "red" } };
}

如果用户添加3个输入,我现在会得到这样的东西:

{
"1": {
"color": "red"
},
"2": {
"color": "red"
},
"3": {
"color": "red"
}
}

目标是拥有这样的东西:

{
"3": {
"color": "red"
}
}

基本上所有其他对象都被删除,只有最新的对象保留

有更好的方法吗?提前感谢

如果它总是最后一个,你可以简单地从等式中省略排列运算符,如下所示,

var lossColor = [];
for (let i = 1; i <= 3; i++) {
lossColor = {[i]: { color: "red" } };
}
console.log(lossColor);

如果你不确定在哪里使用扩散算子,这是一篇关于扩散算子的好文章:https://learnjsx.com/category/2/posts/es6-spreadOperator

相关内容

  • 没有找到相关文章

最新更新