Создание таблицы HTML с использованием массива, содержащего данные CSV в JavaScript - PullRequest
1 голос
/ 22 марта 2019

Я получаю данные csv из объекта S3 и преобразовываю их в строку, используя код, показанный ниже, а затем выкидываю строку в массив arr, думая, что могу построить таблицу html, используя <tr> и <td> теги, которые включают в себя данные, которые я получил от CSV, когда я пытаюсь ниже, я не получаю желаемый вывод в JavaScript

let s3obj = new AWS.S3();
var arr = [];
var html = '<table>';
let s3param = {
      Bucket: 'test-bucket',
      Key: 'test-csv-file'
      };
      s3obj.getObject(s3param, function(err, data){
        if(err){
          throw err;
      } else {
         const body = Buffer.from(data.Body).toString('utf8'); //when i did console.log(typeof(body)) i get string datatype
         arr = body; //i tried converting string into array

    //below is the data i got back when i console.log(arr);

    //TEST,ROW,NUMBER,1
    //TEST,ROW,NUMBER,2
    //TEST,ROW,NUMBER,3

//below code tries to work on Array arr to get the output following it written into htmlTable variable

 for(var i=0; i < arr.length; i++)
    {
      htmlTable += '<tr>';
       for(var j = 0; j < arr[i].length; j++){
        htmlTable += '<td>';
        htmlTable += arr[i][j];
        htmlTable += '</td>';
        }
     htmlTable += '<tr>';
    }
//<table>
   // <tr><td>TEST</td><td>ROW</td><td>NUMBER</td><td>1</td></tr>
   // <tr><td>TEST</td><td>ROW</td><td>NUMBER</td><td>2</td></tr>   
   // <tr><td>TEST</td><td>ROW</td><td>NUMBER</td><td>3</td></tr>
   // <tr><td>TEST</td><td>ROW</td><td>NUMBER</td><td>4</td></tr>
//</table>

Вместо вышеприведенного вывода я получаю что-то еще.Не знаю, где я ошибаюсь, я был бы признателен за помощь в создании таблицы HTML, как и выше.

1 Ответ

0 голосов
/ 24 марта 2019

В зависимости от структуры body вы можете выполнить одно из следующих действий:

  1. Если это массив строк с запятыми:

    arr = body.map(line => line.split(","));
    
  2. Если это одна строка с символами новой строки и запятыми:

    arr = body.match(/.*/g).map(line => line.split(","));
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...