Как преобразовать массивы строк во вложенные массивы?

#javascript #arrays #node.js #matrix

#javascript #массивы #node.js #матрица

Вопрос:

Я довольно новичок в javascript.Я довольно смущен тем, как преобразовать этот управляемый строковый массив в фактический массив.Поскольку это не фактический массив, эта программа выдает

 console.log(line)//[10,0],[80,0],[20,0],[11,20],
var MatrixAJobtime =  JSON.parse(JSON.stringify("[" line "]"));
console.log(arrdateline)//[10,0],[80,0],[20,0],[11,20],
var MatrixBJobDeadLine = JSON.parse(JSON.stringify("[" arrdateline "]"));;


console.log(_.isArray(MatrixAJobtime)) //False

var m1 = MatrixAJobtime 
    m2 =MatrixBJobDeadLine 
    result = m1.map((a,i) => a.map((n,j) => n - m2[i][j]));



console.log(result);//[ [ -90, -36, -45 ], [ 8, -36, 0 ], [ 0, 0, 0 ] ]
 

результат = m1.карта((a,i) => a.карта((n, j) => n — m2[i][j]));
^ Ошибка типа: m1.map не является функцией

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

1. Это выдает мне ошибку

2. @wrarar : вам нужно удалить последнее , …. var MatrixAJobtime = JSON.parse("[" line.slice(0,-1) "]"); и var MatrixBJobDeadLine = JSON.parse(JSON.stringify("[" arrdateline.slice(0,-1) "]"));

3. Учитывая это var line = "[10,0],[80,0],[20,0],[11,20]" , вы получите правильный массив, когда выполните var MatrixAJobtime = JSON.parse(("[" line "]"));

4. откуда вы берете строку? проще не использовать строковое представление идентификатора данных для данных в другом подлинном формате, например array.

Ответ №1:

Выполните приведенный ниже фрагмент и проверьте, соответствует ли это тому, что вы запрашиваете..

 var line = [[10,0],[80,0],[20,0],[11,20]];

line = line.map(function(arr){
  arr = arr.map(function(a){
    return a.toString();
  });
  
  return arr;
});

console.log(line);// prints: [["10","0"],["80","0"],["20","0"],["11","20"]]