Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中用+;如果值为空,则提供额外的逗号_Javascript - Fatal编程技术网

在JavaScript中用+;如果值为空,则提供额外的逗号

在JavaScript中用+;如果值为空,则提供额外的逗号,javascript,Javascript,这里,当我用逗号分隔符连接三个不同的值时,如果值为null,则逗号是连接的。如果值为null,如何避免额外的逗号 下面是我尝试过的代码 var forecast = (is_forecast_checked()) ? 'f' : ''; var contract_volume = (is_contract_volume_checked()) ? 'd' : ''; var actual_volume = (is_actual_volume_checked()) ? 'a' : ''; va

这里,当我用逗号分隔符连接三个不同的值时,如果值为null,则逗号是连接的。如果值为null,如何避免额外的逗号

下面是我尝试过的代码

var forecast = (is_forecast_checked()) ? 'f' : '';

var contract_volume = (is_contract_volume_checked()) ? 'd' : '';

var actual_volume = (is_actual_volume_checked()) ? 'a' : '';

var volume_type = forecast + ',' + contract_volume + ',' + actual_volume ;
很简单

var forecast = (is_forecast_checked() ? 'f' : ''),
// add the comma here if its not null
    contract_volume = (is_contract_volume_checked() ? ',d' : ''),
// same here
    actual_volume = (is_actual_volume_checked() ? ',a' : ''),
// remove the comma concatenation
// replace unwanted, double commas, preceding or ending commas
    volume_type = (forecast + contract_volume + actual_volume).replace(/$,|^,|\B,/g,'');
那么这个呢:

var array = [];

is_forecast_checked() && array.push("f");
is_contract_volume_checked() && array.push("d");
is_actual_volume_checked() && array.push("a");

volume_type = array.join(",");

计算机按你说的做。你让它这么做。使用
if
语句并告诉它做其他事情。这是行不通的。如果它们都是真的,那么你得到“f,,d,,a”,第一个是真的,所以我得到一个“f”。然后,因为它不是空的,所以我“在这里添加逗号”,它给出了“f”。然后我加上一个“d”,它给出了“f,,d”等等,这显然是过分了。。。在这里添加4个额外的函数调用,只有在循环中才有意义