【问题标题】:Having trouble fulling understanding object iteration with a For-In loop使用 For-In 循环难以理解对象迭代
【发布时间】:2017-09-21 07:46:06
【问题描述】:

伙计们。首先,感谢所有花时间帮助一个人的人。我目前正在使用 for-in 进行对象迭代,现在,我在尝试以我真正想要的方式打印出字符串对象时遇到了一些麻烦。这是我正在使用的一个示例。

我有一个看起来像这样的变量。

var someString = 'This is a string object I want to loop through.';

要遍历这个,我知道 For-In 可以工作,语法是......

for (var newString in someString) {
someString[newString] = console.log(someString[newString]);
};

它有效,但它会从上到下查看每个单独的字母。我宁愿只有每个句子中的单词,而不是字母本身。处理我想要的结果的具体方法是什么?

提前谢谢大家。

【问题讨论】:

  • 然后split先放入数组
  • 您需要将字符串拆分为单词数组并遍历单词数组。
  • 很高兴看到越来越多的人进入 JS!一种方法是使用string.split() 拆分字符串。你可以在这里找到一些数据:w3schools.com/jsref/jsref_split.asp 然后简单地遍历创建的数组。 :)
  • 第一件事:字符串不是对象。
  • 所以实际上没有办法将对象作为一个对象以我想要的方式循环遍历它?在这种情况下,我必须始终使用 split 方法将其更改为数组???编辑:朝向Pointy。是的,大多数情况下都是这样。您可以使用构造函数更改整个规则,但无论哪种方式,我都明白您来自哪里。

标签: javascript loops object iteration for-in-loop


【解决方案1】:

正如我在评论中提到的,有几种不同的方法可以做到这一点。

我更喜欢使用 String.Split(),它基本上将分隔符上的字符串(例如 " ")拆分为字符串数组。然后使用for of 循环遍历创建的数组。

let someString = 'This is a string object I want to loop through.'; // use let, not var!

for (let word of someString.split(" ")) {
    console.log(word);
}

希望能为您解决! :)

【讨论】:

  • 是的,确实如此,谢谢 geostocker。你为什么用 let 而不是 var?很抱歉这些问题,但我以前从未见过。
  • @KennethMcAusland 这与当前的趋势和 JavaScript 推向 ES6(EcmaScript 6)有关。在线快速搜索,您会发现一些有关更改的好资源。它基本上是语法上的变化,慢慢地,肯定会被社区越来越多地采用。坚持下去,伙计! :)
猜你喜欢
  • 2021-11-24
  • 2015-08-10
  • 1970-01-01
  • 2017-02-08
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 2011-08-19
  • 1970-01-01
相关资源
最近更新 更多