var words = { hello: 2, there: 3, heres: 1, text: 1 }
进入这个:
var words = [{
word: 'hello',
count: 2
}, {
word: 'there',
count: 3
}, {
word: 'heres',
count: 1
}, {
word: 'text',
count: 1
}]
我和Underscore.js一直在搞乱,但必须遗漏一些非常明显的东西。非常感谢任何帮助,谢谢!
答案 0 :(得分:7)
您可以使用Object.keys()
和map()
执行此操作。
var words = { hello: 2, there: 3, heres: 1, text: 1 }
var result = Object.keys(words).map(e => ({word: e, count: words[e]}))
console.log(result)
您也可以先创建数组,然后使用for...in
循环来推送对象。
var words = { hello: 2, there: 3, heres: 1, text: 1 }, result = [];
for(var i in words) result.push({word: i, count: words[i]})
console.log(result)
答案 1 :(得分:3)
使用Array#map
的可能解决方案。
const words = { hello: 2, there: 3, heres: 1, text: 1 },
res = Object.keys(words).map(v => ({ word: v, count: words[v] }));
console.log(res);

或Array#reduce
。
const words = { hello: 2, there: 3, heres: 1, text: 1 },
res = Object.keys(words).reduce((s,a) => (s.push({ word: a, count: words[a] }), s), []);
console.log(res);

答案 2 :(得分:2)
以下是使用下划线map功能的解决方案:
words = _.map(words, (v, k) => ({word: k, count: v}));
下划线的地图可以迭代一个物体。 iteratee的第一个参数是值,第二个参数是键。
答案 3 :(得分:0)
let object = {
"06.10 15:00": 3.035,
"06.10 21:00": 3.001,
};
let arr = [];
for (const [key, value] of Object.entries(object)) {
arr.push({ date: key, value: value });
}
console.log(arr);