Я использую 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 для повторения элементов в этом?
Вы просто избегаете кавычек, чтобы сделать его объектом (JSON - это допустимое представление объекта в Javascript), иначе вы не можете использовать метод jQuery.each
для строки. Ошибка выбрасывается, поскольку она ищет свойство length
используемое in
операторе, но оно не будет работать со строкой.
var javaScriptVar = <%= str%>
$.each(JSON.parse(javaScriptVar), function (i, itemI) {
//do something
})
javaScriptVar.split('');
превратит вашу строку в массив