jquery 通过for循环连接字符串

cyvaqqii  于 2023-03-17  发布在  jQuery
关注(0)|答案(5)|浏览(219)

我试图通过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);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
<div></div>
<div></div>
<div></div>
ruoxqz4g

ruoxqz4g1#

不要用var str在循环内声明新的str变量。重用在循环外声明的变量。同样使用+=

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

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

sqyvllje2#

除了选择的答案之外,如果您有一个要放入divs中的内容列表,则可以使用forEach执行此操作:

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

hfwmuf9z3#

根据Typescript ESLint建议,
对于索引仅用于从正在迭代的数组中读取的情况,for-of循环更易于读写。
我们可以使用for-of来使用keysmethod

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

但是后面的逗号有问题,我们可以让JavaScript使用joinmethod来处理。

const arr = Array.from(Array(divLength).keys()); // [ 0, 1, 2];
const divArray = arr.map(n => `Div #${n}`)       // ['Div #0', 'Div #1', 'Div #2']
const str = divArray.join(', ');                 // 'Div #0, Div #1, Div #2'

它可以被 Package 成一个衬垫,

const s = Array.from(Array(divLength).keys()).map(val => `Div #${val}`).join(', ')

可以使用fillmethod执行一行代码,该代码的详细程度略低

const s = Array(divLength).fill().map((_, i) => `Div #${i}`).join(', ')
0yycz8jy

0yycz8jy4#

如果我们连接一个数组的字符串,那么你可以这样做。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

oknrviil

oknrviil5#

let str = ''
for (let i = 0; i < arr; i++) {
   str += `${arr[i]}`
}

这在我身上很管用。

相关问题