在将数组元素转换为String时附加逗号

时间:2018-05-30 04:05:13

标签: javascript jquery

请你看看这个演示,让我知道如何在

的当前输出的数组元素之间追加,
  

P [数据-ST!=所有] P [数据-ST!=男人] P [数据-ST!= BI]

  

p [data-st!= all],p [data-st!= men],p [data-st!= bi]



var filters = ['all',null,'men','bi',null];
var text = '';
var i;
for (i = 0; i < filters.length; i++) { 
if(filters[i]!= null){
  text += "p[data-st!="+filters[i]+"]";
}
    
}
console.log(text);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

5 个答案:

答案 0 :(得分:1)

var filters = ['all',null,'men','bi',null];
var text = '';
var i;
for (i = 0; i < filters.length; i++) { 
if(filters[i]!= null){
  text += (i===0?"":", ") + "p[data-st!="+filters[i]+"]";
}
    
}
console.log(text);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

这也是anotehr解决方案。你可以将每个p支架推到一个阵列并加入它们。 如果你不太担心内存和迭代。听到一个简洁易读的解决方案。如果您还不熟悉,它将向您介绍两种有用的数组方法。

function parseString(word)
{
  return `p[data-st!=${word}]`
}

var filters = ['all',null,'men','bi',null];
let text = filters
.filter(val => !!val)
.map(val => parseString(val))
.join(',');

console.log(text);

答案 1 :(得分:1)

您可以使用数组方法完成此操作(并清理一下)。

var filters = ['all',null,'men','bi',null];

var result = filters
                 .filter(n=>n)
                 .map(n => "p[data-st!="+n+"]")
                 .join(", ");

console.log(result);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 2 :(得分:0)

创建一个新的数组变量并通过向其添加p[data-st!文本来推送修改后的数据,然后使用带有逗号(join)的,方法作为分隔符来连接元素

var filters = ['all', null, 'men', 'bi', null];
var inArray = []
var i;
filters.forEach(function(item) {
  if (item !== null) {
    inArray.push("p[data-st!=" + item + "]")
  }
})
console.log(inArray.join(','));

答案 3 :(得分:0)

您可以对字符串执行简单的for循环,并在每个右侧括号后添加一个昏迷。不是最好的选择,但它会起作用。

&#13;
&#13;
var newString = '';
for(let i = 0; i < text.length; i++)
{
  let char = text[i];
  newString += char;
  if(char === ']') newString += ',';
}
&#13;
&#13;
&#13;

答案 4 :(得分:0)

var filters = ['all',null,'men','bi',null];
var a = [];
for(i in filters){
 if(filters[i]!= null){
  var b = [];
  b = "p[data-st!="+filters[i]+"]";
  a.push(b); 
 }
}
console.log(a.join());