我正在尝试显示从复选框中选择的过滤器。首先,我要创建一个从复选框中选择的值数组,然后尝试附加到字符串

例如,我有两个标记为label1label2的复选框,我建立了数组['label1','label2']

期望的结果将是“ Filtered by: Label1, Label2”,但我却得到了Filtered by: Label1,Label2, Label1,Label2

我想这是我尝试构建字符串的for循环中的东西,因为数组看起来不错

let topLabel = jQuery('.industry-filter').data('selected-text') + ' ';
let termsName= ['Industry', 'Category']
if(termsName.length){
  for(var j = 0; j < termsName.length; j++){
    if(j == termsName.length - 1){
      topLabel += termsName;
    }else{
      topLabel += termsName+', ';
    }
  }
}else{
  topLabel = jQuery('.industry-filter').data('text');
}

$('.industry-filter').text(topLabel);


这是显示问题的笔:https://codepen.io/anon/pen/pqjYxL

最佳答案

您应该通过其索引访问一个元素。

if(j == termsName.length - 1){
  topLabel += termsName[j];
}else{
  topLabel += termsName[j]+', ';
}


解决方案的一个简短版本可以使用join方法。

if(termsName.length){
   topLabel += termsName.join(',')
}

关于javascript - Javascript数组显示两次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53758927/

10-12 03:47