Node.js Конвертировать массив в массив объектов - PullRequest
1 голос
/ 05 ноября 2019

У меня есть API отдыха в Node.js, который выводит массив вроде:

[[ "Benni" , 24 , "Whatever" ],[ "Paul" , 23 , "Whatever" ]]

Теперь, чтобы использовать его для таблиц материалов (угловых), я долженпоместите массив в этот формат:

[{name: 'Benni', age: 24, Text: 'Whatever'},{name: 'Paul', age: 23, Text: 'Whatever'},] 

Как мне этого добиться?

Ответы [ 3 ]

2 голосов
/ 05 ноября 2019

Используя последнюю версию JS, создайте карту над массивом, получите данные в порядке от элемента массива, верните нужный объект в функции карты.

const arr = [
  ["Benni", 24, "Whatever"],
  ["Paul", 23, "Whatever"]
];

const remapped = arr.map((data) => {
  const [name, age, Text] = data;
  return {
    name,
    age,
    Text,
  };
});

console.log(remapped);
1 голос
/ 05 ноября 2019

довольно легко:

let result = inputArr.map( innerArr => {name: innerArr[0], age: innerArr[1], Text: innerArr[2]});
0 голосов
/ 05 ноября 2019

вы можете сделать это следующим образом,

var data = [[ "Benni" , 24 , "Whatever" ],[ "Paul" , 23 , "Whatever" ]];

var collection = data.slice(); // make a copy
var keys = ["name","age","text"];

collection = collection.map(function (e) {
    var obj = {};

    keys.forEach(function (key, i) {
        obj[key] = e[i];
    });

    return obj;
});

объект коллекции будет содержать результаты следующим образом

    [
  {
    "name": "Benni",
    "age": 24,
    "text": "Whatever"
  },
  {
    "name": "Paul",
    "age": 23,
    "text": "Whatever"
  }
]

См. Полный код: JSFiddle

...