Функция в пределах oop? - PullRequest
0 голосов
/ 10 апреля 2020

Хотите преобразовать этот вложенный массив TableData в набор объектов, которые указывают на значения первого массива в качестве ключа в паре ключ / значение. Тем не менее, я получаю сообщение об ошибке, что я не могу запустить функцию в al oop. Есть мысли о том, как это исправить?

const tableData = [
  ["first_name", "last_name", "city", "state"],
  ["Elisabeth", "Gardenar", "Toledo", "OH"],
  ["Jamaal", "Du", "Sylvania", "OH"],
  ["Kathlyn", "Lavoie", "Maumee", "OH"]
  ];

  function convertTable(arr){
  let returnArr= [];

  for (let arrSpot=0; arrSpot< arr[0].length; arrSpot++){
    if (arrSpot !== 0){
      returnArr.push(
        arr[0].reduce((accum,arrItem,index)=> {
          accum[arrItem] = arr[arrSpot][index];
          return accum;
        },{})
      );
    }
  }
  console.log(returnArr);

1 Ответ

1 голос
/ 10 апреля 2020

Вы можете использовать array.shift, чтобы получить first row в качестве header массива, а затем выполнить итерацию остальной части строки.

const tableData = [
  ["first_name", "last_name", "city", "state"],
  ["Elisabeth", "Gardenar", "Toledo", "OH"],
  ["Jamaal", "Du", "Sylvania", "OH"],
  ["Kathlyn", "Lavoie", "Maumee", "OH"],
];

function convertTable(arr) {
  const header = arr.shift();
  return arr.map((i) => {
    return {
      [header[0]]: i[0],
      [header[1]]: i[1],
      [header[2]]: i[2],
      [header[3]]: i[3],
    };
  });
}
console.log(convertTable(tableData));

Для динамо c объект:

const tableData = [
  ["first_name", "last_name", "city", "state"],
  ["Elisabeth", "Gardenar", "Toledo", "OH"],
  ["Jamaal", "Du", "Sylvania", "OH"],
  ["Kathlyn", "Lavoie", "Maumee", "OH"],
];

function convertTable(arr) {
  const header = arr.shift();
  return arr.map((i) => {
    return header.reduce((m, key, index) => {
      m[key] = i[index];
      return m;
    }, {});
  });
}
console.log(convertTable(tableData));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...