【问题标题】:Concatenate string through for loop通过for循环连接字符串
【发布时间】:2016-09-20 00:51:18
【问题描述】:

我正在尝试通过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>

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    不要在循环内使用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>

    【讨论】:

    • 呸,我真傻。我想凌晨 3 点不是看这些小东西的最佳时间 x)。
    • 我从未见过[i] 不是语法错误,但它仍然可以是i
    • 对!当您执行"" + [i] 时,数组将转换为其元素的逗号分隔字符串。对于[i],一个元素的数组,假设i = 1"1"。我相应地编辑了答案
    • @RedMercury 哦,当然。不知何故,[i] 看起来很像一个索引访问器,以至于我看不到数组。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:
      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))
      

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-12-16
          • 1970-01-01
          • 1970-01-01
          • 2021-12-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多