通过for循环

时间:2016-09-20 00:51:19

标签: javascript jquery

我试图通过for loop连接字符串,但我正在接收NaNs。我想要实现的是获得一个串联的字符串Div #0, Div #1, Div #2, Div #3,



var divLength = $('div').length;

var str = '';
for(var i=0; i<divLength; i++){
  var str =+ "Div #" + [i] + ", ";
  console.log(str);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
<div></div>
<div></div>
<div></div>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:6)

请勿在{{1​​}}循环内声明新的str变量。重用你在循环外声明的那个。同时做var str

&#13;
&#13;
+=
&#13;
var divLength = $('div').length;

var str = '';
for(var i=0; i<divLength; i++){
  str += "Div #" + i + ", ";
  console.log(str);
}
&#13;
&#13;
&#13;

答案 1 :(得分:0)

除了选定的答案之外,如果您可以在forEach里面放一些东西,可以用divs来做:

let string = '';
items.forEach(item => string += '<div>'+ item.description + '</div>');

答案 2 :(得分:0)

如果我们要连接数组的字符串,那么您可以这样做。 For 循环也是最好的解决方案,但它变成了庞大的过程:

if(this.questionData.length > 0) {
    this.questionData.forEach(questions => {this.questionsParams += '&question'+ questions.question +'=' + questions.value;
    });
}

完美的解决方案输出如下: &question1=1&question2=0&question3=1&question4=0

答案 3 :(得分:0)

let str = '';
for (const i of [...Array(divLength).keys()]) {
  str += `Div #${i}, `;
}
console.log(str);

或单线替代品,

console.log(`${[...Array(divLength).keys()].map(val => ` Div #${val}`)}`.substr(1))