Как преобразовать объект в массив в js? - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть свойства объекта массивов.

const data = {
test:["1","2"],
test2:["1","2"]

}

Я пытаюсь преобразовать этот формат. Я использую Object.values ​​(данные), где я могу только массив. Мне нужно получить этот формат.

Мой пробный код:

let output = Object.values ​​(data)

output : [{test:[{label:"1",value:"1"},{label:"2",value:"2"}]},{test2:[{label:"1",value:"1"},{label:"2",value:"2"}]]

Ответы [ 2 ]

5 голосов
/ 02 апреля 2020

Вы захотите использовать Object.entries для получения доступа к ключам ( "test" , "test2" , et c) и значениям (массивам) затем сопоставить значения с массивом объектов со свойствами label и value (на основе значения ).

Примерно так ...

const data = {
  test: ["1", "2"],
  test2: ["1", "2"]
}

let output = Object.entries(data).map(([ key, values ]) => ({
  [key]: values.map(v => ({ label: v, value: v }))
}))

console.info(output)
1 голос
/ 02 апреля 2020

Используйте Object.entries и map для построения массива.

const format = obj =>
  Object.entries(obj).map(([key, arr]) => ({
    [key]: arr.map(value => ({
      label: value, value
    }))
  }));

const data = {
  test: ["1", "2"],
  test2: ["1", "2"]
};

console.log(format(data));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...