Javascript объект с парами ключ-значение, как разделить каждую пару как отдельный объект? - PullRequest
0 голосов
/ 12 января 2019

У меня есть объект javascript с парами ключ-значение. Я хочу разделить каждую пару как отдельный объект и передать его в массив. Как мне это сделать?

 var obj = new Object();
 obj = {
      v1 : 'k1',
      v2 : 'k2',
      v3 : 'k3'
    }

    a =[];

Object.entries(obj).forEach(
  ([key, value]) => {
    a.push({key : value});
  });
console.log(a);

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

[{v1 : 'k1'}, {v2 : 'k2'}, {v3 : 'k3'}]

Ответы [ 3 ]

0 голосов
/ 12 января 2019

Вы почти получили это. Чтобы создать динамическое свойство из переменной (оно называется Имена вычисляемых свойств ), вам нужно добавить [] вокруг key. В противном случае он просто создает объект с «ключом» как key:

const obj = {
  v1: 'k1',
  v2: 'k2',
  v3: 'k3'
},
a = [];

Object.entries(obj).forEach(
  ([key, value]) => {
    a.push({[key] : value});
  });
console.log(a);

или, намного проще, используя map:

const obj = {v1:'k1',v2:'k2',v3:'k3'}
,a = Object.entries(obj).map(([key, value]) => ({[key] : value}));

console.log(a);
0 голосов
/ 12 января 2019

Более функциональный способ сделать это - map над записями объектов для создания нового массива объектов.

var obj =  { v1 : 'k1', v2 : 'k2', v3 : 'k3' }

const out  = Object.entries(obj).map(([k, v]) => ({ [k]: v }));

console.log(out);
0 голосов
/ 12 января 2019

var obj =  { v1 : 'k1', v2 : 'k2', v3 : 'k3' }

var result = []
for(var i in obj) result.push([i, obj[i]])


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