Javascript 将比较中的常量更改为变量会产生意外结果

Javascript 将比较中的常量更改为变量会产生意外结果,javascript,d3.js,c3.js,Javascript,D3.js,C3.js,我一直在玩弄这个有一段时间了,我弄不懂它的意思 这提供了我要查找的输出(彩色条取决于值) 我有以下代码: t2actual: function(d) { if (d.value >= 44.5 && d.value <= 45.5) { return '#218340'; } else if (d.value >= 44.0 && d.value <= 44.4 || d.value >= 45.6

我一直在玩弄这个有一段时间了,我弄不懂它的意思

这提供了我要查找的输出(彩色条取决于值)

我有以下代码:

t2actual: 
function(d) {
    if (d.value >= 44.5 && d.value <= 45.5) {
        return '#218340';
    } else if (d.value >= 44.0 && d.value <= 44.4 || d.value >= 45.6 && d.value <= 50) {
        return '#f7b731';
    } else {
        return '#a62337';
    }
}
t2实际:
职能(d){

如果(d.value>=44.5&&d.value=44.0&&d.value=45.6&&d.value需要进行一些研究,但在示例中:

基本上,您需要在图表的
数据
属性上设置
color
方法。我还清理了一些格式并重构了为
t2actual
生成颜色的方式。您需要从
t2setpoint
获取值的索引位于数据对象
d
中。但是,您需要在o中向其添加1按顺序跳过数组开头的标识符

var列\u涡轮机条件=[
['t2setpoint',45.1,45,45.4,45,45.2,45,45,45,45,48.1,45,45],
[干球',82.3,82.3,82.3,82.3,82.3,82.3,82.3,82.3,82.3,82.3,82.3,82.3],
['t2actual',46,45,45,46,47,46,45,45,45,44,45,46]
];
var图表=c3.0({
bindto:“#图表#涡轮机条件”,
数据:{
列:列\u涡轮机条件,
轴线:{
t2设定点:“y”,
干球茎:“y”,
t2实际值:“y2”
},
类型:{
“t2setpoint”:“样条曲线”,
“干球”:“样条曲线”,
“t2actual”:“bar”
},
小组:[
['t2actual']
],
颜色:{
t2设定值:“#77777 A”,
干球:“#4D4F”,
t2actual:'#ffffff'//在此处设置图例颜色
},
颜色:函数(颜色,d){
//当调用图例时,d将是“id”
如果(类型d!==‘对象’){
返回颜色;
}
var设定值=列_涡轮机条件[0][d.索引+1];

如果(设置点-我想到了0.5运算符优先级…但通常,要寻找重现错误的最小条件。您似乎正在显示调试器图像,这两次,您似乎都在
else
。有什么区别?为什么
d.value
未定义,而它显然不应该是?@ASDFGerte这是一部分这是我的问题。一个方案有效,但另一个方案无效,但C3.js在这两个方案中都返回了一个“未定义”的值。请参见上文。我不相信您的第一个函数实际上显示了它应该显示的内容。
d.value
在大多数情况下是未定义的。请参见此。检查控制台。太棒了!非常感谢您的帮助。
t2actual: 
function(d) {
    arrayIndex++
    var setPoint = columns_TurbineConditions[0][arrayIndex];

    if ((setPoint - 0.5) <= d.value && d.value <= (setPoint + 0.5)) {
        return '#218340';
    } else if ((setPoint - 1) <= d.value && d.value <= (setPoint + 1)) {
        return '#f7b731';
    } else {
        return '#a62337';
    }
}
if (((setPoint - 0.5) <= d.value) && (d.value <= (setPoint + 0.5))) {