将单个对象转换为对象数组

Arn*_*han 1 javascript d3.js

我有一个对象,它包含不同单词的出现次数.它看起来像这样:

{
Word1 : 1,
Word2 : 1,
Word3 : 2,
Word4 : 3
}
Run Code Online (Sandbox Code Playgroud)

我想有一个看起来像这样的数组:

[
{word:Word1, count:1},
{word:Word2, count:1},
{word:Word3, count:2},
{word:Word4, count:3},
]
Run Code Online (Sandbox Code Playgroud)

我看了一下,发现这个代码循环遍历对象并获取我想要的值:

for (var key in p) {
  if (p.hasOwnProperty(key)) {
    console.log(key + " -> " + p[key]);
  }
}
Run Code Online (Sandbox Code Playgroud)

我试图创建一个空数组并用于push获取其中的预期值,但我似乎没有得到它的悬念.我觉得这些方面的东西应该能得到我想要的结果:

for (var key in p) {
  if (p.hasOwnProperty(key)) {
    //Here is where the code should go, something like :
    myNewObject[i].word = key;
    myNewObject[i].count = p[key];
  }
}
Run Code Online (Sandbox Code Playgroud)

Alb*_*res 5

你可以使用Object.keysmap:

var obj = {
 Word1 : 1,
 Word2 : 1,
 Word3 : 2,
 Word4 : 3
}

var array = Object.keys(obj).map((key) => ({
  word: key,
  count: obj[key]
}));

console.log(array);
Run Code Online (Sandbox Code Playgroud)