如何将变量值作为对象键名,实现Google Charts饼图最后一块固定为红色
问题原因
JavaScript 中直接在对象字面量中写i作为键时,会默认将键解析为字符串"i",不会读取变量i的实际值作为键名,这就是你配置不生效的核心原因。
解决方法
使用计算属性语法,用方括号包裹变量即可将变量值作为对象的键名。同时你原代码中的循环逻辑存在问题:每次循环都会重新赋值lossColor,会覆盖之前的配置。
针对你的需求(仅最后一个数据项设为红色),不需要循环,直接计算最后一项的索引即可:
// 你添加的Loss项是最后一行,索引等于slices的长度(数组从0开始计数) const lastSliceIndex = slices.length; const lossColor = { // 方括号包裹变量,使用计算属性生成键名 [lastSliceIndex]: { color: "red" } };
如果你有批量设置多个索引颜色的需求,可以按下面的方式写:
const lossColor = {}; const indices = indexSum; for (let i = 1; i <= indices; i++) { // 动态给对象添加键值对 lossColor[i] = { color: "red" }; }
后续的Google Charts渲染逻辑不需要修改,你原本options中slices: lossColor的配置是正确的,修改后即可正常生效。
内容的提问来源于stack exchange,提问作者user17153595
相关产品推荐
相关产品推荐

