2017-09-25 47 views
1

我正在使用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

回答

2

你只是爲了避免周圍的引號使它成爲一個對象(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:很高興幫助你:) –