【问题标题】:Iterate through elements in a string遍历字符串中的元素
【发布时间】:2017-09-25 19:07:18
【问题描述】:

我正在使用 JavaScript。现在我在java中有一个字符串,它是“[\”x\”,\“y\”]”。现在我想在 javascript 中使用它。请在下面找到代码:

String str = "[\"x\",\"y\"]";
<script>
  var javaScriptVar = '<%= str%>'

</script>

现在我想迭代 str 中的每个元素。我正在使用:

$.each(javaScriptVar, function (i, itemI) {
   //do something
}

但我在控制台中收到以下错误:

Cannot use 'in' operator to search for 'length' in ["x","y"].

我如何使它可迭代?那是因为它被认为是一个字符串吗?如何在javascript中将其作为数组来遍历其中的元素?

【问题讨论】:

  • javaScriptVar.split(''); 会将您的字符串转换为数组

标签: javascript string iterator


【解决方案1】:

您只是为了避免使用引号使其成为对象(JSON 是 Javascript 中的有效对象表示),否则您不能在字符串上使用 jQuery.each 方法。错误正在抛出,因为它使用 in operator 查找 length 属性,但它不适用于字符串。

var javaScriptVar = <%= str%>


或者解析 JSON 字符串并将其作为参数提供。
$.each(JSON.parse(javaScriptVar), function (i, itemI) {
   //do something
})

【讨论】:

  • 感谢您的快速评论。删除引号解决了这个问题。 @PranavCBalan
  • @user3750720 : 很高兴为您提供帮助 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-29
  • 2012-01-13
  • 2018-05-15
相关资源
最近更新 更多