通过字符串中的元素迭代

问题描述:

我正在使用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中的数组来遍历该元素?

+0

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

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

var javaScriptVar = <%= str%> 


或分析JSON字符串,并提供它作为参数。

$.each(JSON.parse(javaScriptVar), function (i, itemI) { 
    //do something 
}) 
+0

感谢您的快速评论。删除引号解决了问题。 @PranavCBalan – user3750720

+0

@ user3750720:很高兴帮助你:) –