[英]Transform a single object into an array of objects
我有一個對象,其中包含不同單詞出現的次數。 看起來像這樣:
{
Word1 : 1,
Word2 : 1,
Word3 : 2,
Word4 : 3
}
我想要一個看起來像這樣的數組:
[
{word:Word1, count:1},
{word:Word2, count:1},
{word:Word3, count:2},
{word:Word4, count:3},
]
我四處張望,發現這段代碼遍歷對象並獲取所需的值:
for (var key in p) {
if (p.hasOwnProperty(key)) {
console.log(key + " -> " + p[key]);
}
}
我試圖創建一個空數組,並使用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];
}
}
您可以使用Object.keys
和map
:
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);
您可以在Object.keys
上使用reduce()
:
let o = { Word1: 1, Word2: 1, Word3: 2, Word4: 3 }; let arr = Object.keys(o).reduce((a, b) => a.concat({ word: b, count: o[b] }), []); console.log(arr);
這應該工作。
const start = {
Word1 : 1,
Word2 : 1,
Word3 : 2,
Word4 : 3
};
const finish = Object.keys(start).map(k => { word: k, count: start[k] });
您應該為對象中的每個鍵推入一個對象:
var result = [];
for (var key in p) {
if (p.hasOwnProperty(key)) {
result.push({
word: key,
count: p[key]
});
}
}
您可以使用Object.keys()
遍歷對象中的每個鍵。 使用map()
或forEach()
獲得所需的結果。
let o = { Word1: 1, Word2: 1, Word3: 2, Word4: 3 }; var result = []; Object.keys(o).forEach(function(x){ result.push({word: x, count : o[x]}); }); console.log("Result with forEach :" ,result); var resultWithMap = Object.keys(o).map( x => ({ word : x, count : o[x] }) ); console.log("Result with map :" , resultWithMap);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.