Мой вызов Ajax получает "[['Best Value (62)',62 ],['LPTA (32)',32 ],] "
как возвращаемое значение. Мне нужно передать это как массив. Есть ли способ сделать строку в массиве, не прибегая к eval()
?Строка в JavaScript Массив
ответ
Если вы избавитесь от конечной запятой и смените двойные кавычки на двойные кавычки, и все, что у вас есть в массиве, хорошо сформировано, вы можете использовать JSON.parse, чтобы превратить строку в массив. Если у вас есть доступ к серверному коду, скорее всего, вы захотите внести изменения там, а не в js.
JSON.parse("[[\"Best Value (62)\",62],[\"LPTA (32)\",32]]")
То, что вы не JSON, но действует JavaScript (при условии, лишняя запятая была ошибка копирования и вставки). И, насколько мне не нравится, вы можете использовать Eval:
// convert the input in to a javascript array
var o = eval("[['Best Value (62)',62],['LPTA (32)',32]]");
// use jQuery map to grab only the first array value and return
// each selection back as an array
$.map(o, function(a){
return a[0];
}); // ['Best Value (62)','LPTA (32)'];
если дополнительная запятая там остаться, вы можете использовать немного больше обработки, чтобы избавиться от него:
var data = "[['Best Value (62)',62],['LPTA (32)',32],]";
var o = eval(data.replace(/\],\]$/,']]'));
$.map(o, function(a){
return a[0];
});
JSON.parse("[['Best Value (62)',62 ],['LPTA (32)',32 ],]".replace(/(,])$/, ']').replace(/'/g, '"'))
почему нисходящий? это делает то, что хочет пользователь! http://jsfiddle.net/BxqSr/ –
не dv, но как бы вы обрабатывали одиночные кавычки в середине строки? теперь вы получите строковое значение, например '' doesn 't work', 'Если только данные не заданы, значения не могут быть указаны в кавычках –
true, я исправлю это сразу –
- 1. Javascript Строка Объекта/Массив
- 2. JavaScript строка в многомерный массив
- 3. xls Строка в массив в JavaScript
- 4. Сплит-строка в javascript в массив
- 5. Javascript Раскол строка Интсов в массив
- 6. Javascript: Строка текста в массив символов
- 7. Преобразовать [строка, строка] в массив
- 8. строка доступа JavaScript символы как массив
- 9. Строка в массиве Javascript
- 10. массив Javascript содержит где ключ либо строка или массив строк
- 11. строка добавить в JavaScript
- 12. Строка в массив
- 13. строка в байтовый массив
- 14. строка в массив?
- 15. строка в числовой массив
- 16. запятая строка в массив
- 17. Строка/массив в Java
- 18. строка в массив возвращаемый массив в параметре
- 19. Разделительная строка, которая включает (и и) в массив в Javascript
- 20. Turn строка из JSON массива в другой массив в JavaScript
- 21. Строка реструктуризации в javascript
- 22. новообращенной строка [ «строка»] в массив строк
- 23. Javascript строка преобразования
- 24. массив, сохраненный как строка обратно в массив?
- 25. Строка манипуляции в массив JavaScript с использованием lodash
- 26. Как проверить, существует ли строка/массив/объект в Javascript?
- 27. Split Javascript Строка в массив строк путем поиска ключевого слова
- 28. Строка замены «<br> ↵» с запятыми в JavaScript массив
- 29. JavaScript - Loop JSON массив и строка соответствия в subarray
- 30. Javascript: условная строка в массиве
Если у вас действительно есть эта конечная запятая, даже eval() не спасет вас. – Brian
Почему у вас есть такой результат, а не как правильно json-закодированный массив? –
@Brian: Конечные запятые действительны в литералах массива? – Bergi