Преобразование из многомерного массива в json Объект в javascript для итерации в таблице (сетке) в приложении angular 8 - PullRequest
0 голосов
/ 16 января 2020

Фактический вывод:

[["Name","Age","Location","Gender"],["Mary",28,"KY","F"],["Jonathan",34,"NJ","M"],["Kevin",31,"CA","M"]]

Ожидаемый результат:

[
  {
    "Name":"Mary",
    "Age":28,
    "Location":"KY" ,
    "Gender":"F"
  },
  {
    "Name":"Jonathan",
    "Age":34,
    "Location":"NJ",
    "Gender":"M"
  },
  {
    "Name":"Kevin",
    "Age":31,
    "Location":"CA",
    "Gender":"M"
  }
] 

Пожалуйста, помогите мне с этим. Так что я могу повторить в таблице.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 16 января 2020

Уничтожить ключи от значений. Сопоставьте массив значений (vals) и используйте Object.fromEntries() для создания объекта путем сопоставления каждого подмассива значений (varr) и объединения с соответствующим ключом для создания массива записей [ключ, значение] .

для создания объекта из значений и ключей:

const objecttify = ([keys, ...vals]) => // destructure the keys and an array of values
  vals.map(varr => // map the values
    Object.fromEntries( // convert the entries to an object
      varr.map((v, i) => [keys[i], v]) // create the entries by combining a value with it's respective key
    )
  )

const arr = [["Name","Age","Location","Gender"],["Mary",28,"KY","F"],["Jonathan",34,"NJ","M"],["Kevin",31,"CA","M"]]

const result = objecttify(arr)

console.log(result)
1 голос
/ 16 января 2020

Попробуйте это:

const input = [["Name", "Age", "Location", "Gender"], ["Mary", 28, "KY", "F"], ["Jonathan", 34, "NJ", "M"], ["Kevin", 31, "CA", "M"]];
const keys = input[0];
const output = input.slice(1).map(entry => {
    const retVal = {};
    keys.forEach((key, index) => {
        retVal[key] = entry[index];
    });
    return retVal;
});
console.log(output);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...