上下文:我正在创建一个对象来设置颜色"红色";然而,到了谷歌排行榜的最新一页,我不断地得到";堆叠的";对象。我想删除以前的对象,只保留最新的对象。
我试着做这样的事情:
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