为什么我的打字机'迭代器以错误的顺序打印字符串?

时间:2017-04-30 05:10:48

标签: javascript iterator

道歉,如果这是一个愚蠢的问题,但我不明白为什么以下代码以看似随机的顺序记录字符串中的字母:



@Html.TextAreaFor(model => model.ProjectContent, new { htmlAttributes = new { @name="ProjectContent",@class = "form-control", cols = "50" , keypress="yourMethod()"}})




1 个答案:

答案 0 :(得分:3)

  

我无法理解为什么以下代码以看似随机的顺序记录字符串中的字母:

它没有,它跳过所有其他角色。那是因为你在每次迭代中都要调用.next两次。 if (iterator.next().done)会消耗一个角色。只需拨打.next()一次:

const aString = "hello, this is a string";
const iterator = aString[Symbol.iterator]();

var typewriter =
  setInterval(() => {
    const next = iterator.next();
    if (next.done) {
      clearInterval(typewriter);
    } else {
      console.log(next.value);
    }
  }, 200);