【发布时间】:2019-03-29 22:20:21
【问题描述】:
我已经在函数内部发起了一个数组,比如
function initColor(r) {
r[0].color = "#007FFF", r[1].color = "#A142FF", r[2].color = "#FF85C2", r[3].color = "#FFA142", r[4].color = "#FF4242";
for (var o = 5; o < r.length; o++) {
var t = d3.color(r[o % 4 + 1].color);
r[o].color = t.brighter(1.5).toString()
}
}
当我尝试调用函数 initColor() 时,我遇到了类似的错误
TypeError: 无法设置未定义的属性“颜色”
我的代码有什么错误?
【问题讨论】:
-
r必须已经填充了对象才能使该代码工作,听起来好像不是。 -
你能举个例子吗@CertainPerformance
-
用
(r[0] = r[0] || {}).color替换r[0].color -
@Siddharthaesunuri 你的原始数组(r)要么是空的,要么根本不存在,就是这样。
-
@Siddharthaesunuri 例如,
[{}, {}]将是一个包含两个空对象的数组。如果数组中没有元素,则不能添加或更改数组元素的属性。
标签: javascript d3.js