如果 json returns 为空,则设置“0”

Set `0` if json returns null

我正在 div 中显示 json 数据,它的工作正常。

var details= response.data.filters;
    $.each(details,function(i,value){
    $('.subSection').append('<section><label>Speed</label><label>'+value.speed+'</label></section>');
});

在这里,当我得到 value.speed 作为 null 时,我试图显示 0。所以我尝试使用这样的三元运算符

$('.subSection').append('<section><label>Speed</label><label>'+(value.speed==null)?'0':value.speed+'</label></section>');

但它像这样连续返回零..0000。不是正确的结构化元素。

我想我在三元组中做错了operator.Can如果我错了有人纠正我吗?

问题在于您的操作顺序,您需要将整个三元组包裹在括号中。您的陈述有效评估为:

$(".subSection").append(
  ("<section><label>Speed</label><label>" + (value.speed == null))
    ? "0"
    : (value.speed + "</label></section>")
);

你想要的是:

$(".subSection").append(
  "<section><label>Speed</label><label>" +
    (value.speed == null ? "0" : value.speed) +
    "</label></section>"
);

你也可以用 (value.speed || '0') 替换三元组,如果 value.speed 是任何虚假值

,它将使用 '0'

将来你最好提取语句而不是内联它们,这样可以完全避免这个问题:

const speed = (value.speed == null) ? "0" : value.speed;
$(".subSection").append(
  "<section><label>Speed</label><label>" +
    speed +
    "</label></section>"
);

尝试用方括号括起来,例如,

$('.subSection').append('<section><label>Speed</label><label>'+((value.speed==null)?'0':value.speed)+'</label></section>');

希望对您有所帮助!