Создать javascript массив массивов из string (который содержит строки)

#javascript #arrays #json

#javascript #массивы #json

Вопрос:

У меня есть следующая строка

 ['Value',2],['Value2',4],['Value3',10]
  

Я хотел бы преобразовать это в массив javascript. Я должен быть в состоянии

 var tmpStrings = "['Value',2],['Value2',4],['Value3',10]";     
var arrStrings = JSON.parse("["   tmpStrings   "]");
  

К сожалению, я получаю неожиданные ошибки символов. Я думал, что это могут быть одинарные кавычки, но их экранирование ничего не меняет. Кажется, что Int работает нормально, приведенное ниже работает для меня нормально

 var tmpInts = "[4,2],[5,3],[6,3]"; 
var arrInts = JSON.parse("["   tmpInts   "]"); 
  

Комментарии:

1. Можете ли вы показать ожидаемый результат. Не на 100% ясно, что вам нужен массив массивов, хотя я подозреваю, что это так.

2. недопустимы одинарные кавычки JSON — вот почему он терпит неудачу

3. Вы можете перевернуть его var tmpStrings = '["Value",2],["Value2",4],["Value3",10]';

Ответ №1:

JSON не будет принят ' . Итак, вам нужно изменить это на двойные кавычки, например

 console.log(JSON.parse("["   tmpStrings.replace(/'/g, '"')   "]"));
# [ [ 'Value', 2 ], [ 'Value2', 4 ], [ 'Value3', 10 ] ]
  

Мы просто заменяем все ' в строке на двойные кавычки.

Предупреждение: это заменит ' на " , даже если оно появляется в середине строки.