【问题标题】:for loop initial value change with finally modified value javascriptfor循环初始值更改与最终修改值javascript
【发布时间】:2016-05-08 01:25:05
【问题描述】:

这里我在 for 循环中设置了一些初始值,但在每次执行中,这个初始值都会改变。所以我需要将更改后的值放入forloop初始值

    str = "aabaacaba"
    newStr= str[0];
//for first time newStr length is one. but once "newStr.indexOf(str[i]) == -1" condition satisfied newStr length changed to two. so now newStr length is 2. in for loop the value is to be like "for (var i=2)"
    for (var i=newStr.length;i<str.length; i++) {
        if (newStr.indexOf(str[i]) == -1) {
            newStr = newStr + str[i];//console.log(newStr)
        }
    }

所以在每次迭代中newStr 长度都会变化。
我需要 javascript 或 jquery 中的解决方案。

【问题讨论】:

  • 您到底需要什么?更清楚。谢谢
  • 是的,最初 newStr 长度为 1。但迭代后可能不一样。 newStr 长度不同。所以我需要将不同的长度放入 forloop 初始值。那是for (var i=newStr.length
  • if 条件下再次写入i = newStr.length,如下。
  • "所以我需要输入不同的长度" - 不,你不需要。循环必须遍历str 中的每个字符,因此必须从i = 1i == (str.length - 1)newStr 的长度无关紧要。你也应该使用str.charAt(i) 而不是str[i]
  • 请换位思考,这个问题很难理解!提示: 1) 使用正确的术语,并可能使用英语。 我需要将更改后的值放入 forloop 初始值 没有意义,右值不用于存储任何内容。 2)首先告诉我们你想在没有任何代码的情况下实现什么,然后你的 sn-p 是如何无法实现的。见XY problem

标签: javascript jquery arrays for-loop


【解决方案1】:

为此使用while循环:

var str = "aabaacaba"
var newStr= str[0];
var i = newStr.length;
while (i < str.length) {
    if (newStr.indexOf(str[i]) == -1) {
        newStr = newStr + str[i];
        i = newStr.length;
        //console.log(newStr);
        continue;
    }
    i++;
}

【讨论】:

    【解决方案2】:

    试试这个:

    如果你想将它们放在一个数组中:

    str = "aabaacaba"
    var newStr = [];
    
    for (var i = 0; i < str.length; i++){
      if (newStr.indexOf(str.charAt(i)) == -1) {
        newStr = newStr.push(str.substring(i,i+1));
        console.log(newStr.length);
      }
    }
    

    如果你想把它们放在一个字符串中:

    str = "aabaacaba"
    var newStr = "";
    
    for (var i = 0; i < str.length; i++){
      if (newStr.indexOf(str.charAt(i)) == -1) {
        newStr = newStr + str.substring(i,i+1);
        console.log(newStr.length);
      }
    }
    

    【讨论】:

    • 我需要将不同的 newStr.length 放入 forloop。
    • 你的输出显示不同的 newStr 长度但没有传递给 forloop 初始值 @Mattbutler
    猜你喜欢
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 2020-08-28
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    相关资源
    最近更新 更多