Подтвердить что ты не робот

Javascript/Jquery Преобразование строки в массив

У меня есть строка

var traingIds = "${triningIdArray}";  // ${triningIdArray} this value getting from server 
alert(traingIds)  // alerts [1,2]
var type = typeof(traingIds ) 
alert(type)   // // alerts String

теперь я хочу преобразовать это в массив, чтобы я мог выполнять итерацию

Я попробовал

var trainindIdArray = traingIds.split(',');
$.each(trainindIdArray, function(index, value) { 
    alert(index + ': ' + value);   // alerts 0:[1 ,  and  1:2]
});

как решить эту проблему?

4b9b3361

Ответ 1

Предполагая, что, как представляется, ${triningIdArray} является заполнителем на стороне сервера, который заменяется синтаксисом массива JS-массива, просто теряйте кавычки. Итак:

var traingIds = ${triningIdArray};

не

var traingIds = "${triningIdArray}";

Ответ 2

Поскольку символьная буква массива все еще действительна JSON, вы можете использовать JSON.parse() для преобразования этой строки в массив, а оттуда использовать ее значения.

var test = "[1,2]";
parsedTest = JSON.parse(test); //an array [1,2]

//access like and array
console.log(parsedTest[0]); //1
console.log(parsedTest[1]); //2

Ответ 3

Изменить

var trainindIdArray = traingIds.split(',');

к

var trainindIdArray = traingIds.replace("[","").replace("]","").split(',');

В основном это удалит [ и ], а затем разделит строку

Ответ 4

проверьте это:)

var traingIds = "[1,2]";  // ${triningIdArray} this value getting from server 
alert(traingIds);  // alerts [1,2]
var type = typeof(traingIds);
alert(type);   // // alerts String

//remove square brackets
traingIds = traingIds.replace('[','');
traingIds = traingIds.replace(']','');
alert(traingIds);  // alerts 1,2        
var trainindIdArray = traingIds.split(',');

​for(i = 0; i< trainindIdArray.length; i++){
    alert(trainindIdArray[i]); //outputs individual numbers in array
    }​