Угловой 7 и массивы, помещающие два массива в один массив, дают ошибку неопределенного - PullRequest
0 голосов
/ 22 марта 2019

Мне нужно объединить 2 массива, считанные из файла Excel, в 2-мерный массив, чтобы я мог разместить его как dataSource таблицы материалов.

У меня есть 2 массива, прочитанных из Excel с использованием библиотеки XLSX:

    reader.onload = (e) => {
      const res = reader.result as string; // This variable contains your file as text
      const lines = res.split('\n'); // Splits you file into lines
      let ids=[];
      let name = [];
      let array:any[][];
      lines.forEach((line, index) => {
        //console.log(line);
        ids.push((line.split(',')[0]));
        name.push(line.split(',')[1]);
        array.push([ids, name])
      });
      console.log(array);
    }

Но я продолжаю получать сообщение об ошибке console.log(array):

ОШИБКА TypeError: Невозможно прочитать свойство 'push' из неопределенного

EDIT

Я изменил код на:

      let name = [];

      lines.forEach((line, index) => {
        //console.log(line);
        ids.push((line.split(',')[0]));
        name.push(line.split(',')[1]);
        array.push(ids, name)
      });
      console.log(array);

Результат был такой:

enter image description here

Но это не то, что мне нужно, потому что он не будет работать как источник данных в таблице материалов.

1 Ответ

1 голос
/ 22 марта 2019

Если я правильно понял вашу проблему ... вот простой способ выполнить ваше требование.

 let lines = ["1,xx","2,yy","3,zz"];
 let name = [];
 let array = [];
      lines.forEach((line, index) => {
        //console.log(line);
        let obj = { 
        id : line.split(',')[0],
        name : line.split(',')[1]
        };
        
        //ids.push((line.split(',')[0]));
        //name.push(line.split(',')[1]);
        array.push(obj)
      });
      
console.log(array);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...