【发布时间】:2018-09-28 07:47:32
【问题描述】:
d:{"children":[{"name":"China","children":[{"name":"China","value":400,"percentage":"33.33"}],"index":0},{"name":"England","children":[{"name":"England","value":300,"percentage":"33.33"}],"index":1},{"name":"Malaysia","children":[{"name":"Malaysia","value":500,"percentage":"25.00"}],"index":2},{"name":"South Korea","children":[{"name":"South Korea","value":600,"percentage":"50.00"}],"index":3}]}
对象数组
cfg.thresholdSetting.thresholds = [{"dType":"threshold","from":0,"to":30,"color":"rgb(217, 20 ,39)"},{"dType":"threshold","from":30,"to":70,"color":"rgb(242, 145, 10)"},{"dType":"threshold","from":70,"to":120,"color":"rgb(33, 145, 49)"}]
然后我有一个属性:
rect.style("fill", function (d, i) {
for (var k = 0; k < fromValues.length; k++) {
console.log("percentage : " + d.percentage)
console.log("from value : " + fromValues[k])
console.log("to value : " + toValues[k])
if (d.percentage >= fromValues[k] && d.percentage <= toValues[k]) {
return cfg.thresholdSetting.thresholds[k].color;
}
else {
return "#808080";
}
}
})
从代码中,我的 from 和 to 值输出停滞不前。外部循环根据我拥有的数据数量运行。我如何比较这些值?
电流输出
预期输出
d.percentage = 33.33
from value = 0
to value = 30
d.percentage = 33.33
from value = 30
to value = 70
d.percentage = 33.33
from value = 70
to value = 120
d.percentage = 50.00
from value = 0
to value = 30
d.percentage = 50.00
from value = 30
to value = 70
d.percentage = 50.00
from value = 70
to value = 120
【问题讨论】:
-
d来自哪里?为什么在第一次迭代中退出循环? -
d 是我的数据的迭代器,这意味着它会根据我拥有的数据数量循环,你是什么意思退出?我不明白?返回一个值退出循环是吗?那么如何在循环中返回一个值呢? @NinaScholz
-
是的,
return不仅退出循环,还退出整个函数。 -
好的,那么我该怎么做才能获得预期的输出?
-
仍然没有
d。
标签: javascript arrays for-loop d3.js