You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Charts切片设色时仅保留最新对象的实现方案咨询

解决方案

最优实现(时间复杂度O(1))

如果你确认仅需要保留最新索引对应的唯一属性,完全不需要循环遍历,直接替换整个lossColor对象即可:

// indices 为你需要保留的最新索引值(示例中对应数值3)
lossColor = {
  [indices]: { color: "red" }
};

该方案直接抛弃所有旧属性,仅生成包含最新键的新对象,是性能最高、逻辑最清晰的实现方式。


需保留循环逻辑的修正方案

如果你的业务场景必须保留遍历逻辑,可以在循环结束后提取最大索引,再重新生成对象:

// 先按原有逻辑完成遍历
for (let i = 1; i <= indices; i++) {
  lossColor = { ...lossColor, [i]: { color: "red" } };
}
// 提取所有键的最大值,生成仅保留最新属性的对象
const maxKey = Math.max(...Object.keys(lossColor).map(Number));
lossColor = { [maxKey]: lossColor[maxKey] };

原有代码问题说明

  1. 最初的循环实现:仅在对象键数>=2时删除前一个索引的属性,循环执行过程中不会删除更早的旧键,最终会残留历史属性。
  2. 展开运算符实现:每次生成新对象时都会保留之前的所有属性,自然会叠加所有历史键值对。

内容的提问来源于stack exchange,提问作者user17153595

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:45:03