将对象转换为对象数组
Turn object into array of objects
我正在尝试将此对象转换为对象数组,并将对象键放入数组中每个对象的 属性 中。
这是输入:
var input = {
"2017-03-13": ["Event 1", "Event 2"],
"2017-03-14": ["Event 1", "Event 2"],
"2017-03-15": ["Event 1", "Event 2"]
}
这是我想要的输出:
[
{
date: "2017-03-13",
events: ["Event 1", "Event 2"]
},
{
date: "2017-03-14",
events: ["Event 1", "Event 2"]
},
{
date: "2017-03-15",
events: ["Event 1", "Event 2"]
}
]
有什么想法可以解决这个问题吗?我也有 underscore.js 可供使用。
您可以尝试这样的操作:
var input = {
"2017-03-13": ["Event 1", "Event 2"],
"2017-03-14": ["Event 1", "Event 2"],
"2017-03-15": ["Event 1", "Event 2"]
}
var output = [];
for(var key in input){
output.push({
date: key,
events: input[key]
})
}
console.log(output);
或者更实用的方式:
var input = {
"2017-03-13": ["Event 1", "Event 2"],
"2017-03-14": ["Event 1", "Event 2"],
"2017-03-15": ["Event 1", "Event 2"]
}
var output = Object.keys(input)
.map(function(key){
return { date: key, events: input[key]};
});
console.log(output);
您可以使用 Object.keys()
和 map()
来做到这一点。
var input = {
"2017-03-13": ["Event 1", "Event 2"],
"2017-03-14": ["Event 1", "Event 2"],
"2017-03-15": ["Event 1", "Event 2"]
}
var result = Object.keys(input).map(function(e) {
return {date: e, events: input[e]}
})
console.log(result)
在 ES6 中,您可以使用箭头函数在一行中完成此操作。
var result = Object.keys(input).map(e => ({date: e, events: input[e]}))
Object.keys(input).map(key => {
date: key,
events: input[key]
});
我正在尝试将此对象转换为对象数组,并将对象键放入数组中每个对象的 属性 中。
这是输入:
var input = {
"2017-03-13": ["Event 1", "Event 2"],
"2017-03-14": ["Event 1", "Event 2"],
"2017-03-15": ["Event 1", "Event 2"]
}
这是我想要的输出:
[
{
date: "2017-03-13",
events: ["Event 1", "Event 2"]
},
{
date: "2017-03-14",
events: ["Event 1", "Event 2"]
},
{
date: "2017-03-15",
events: ["Event 1", "Event 2"]
}
]
有什么想法可以解决这个问题吗?我也有 underscore.js 可供使用。
您可以尝试这样的操作:
var input = {
"2017-03-13": ["Event 1", "Event 2"],
"2017-03-14": ["Event 1", "Event 2"],
"2017-03-15": ["Event 1", "Event 2"]
}
var output = [];
for(var key in input){
output.push({
date: key,
events: input[key]
})
}
console.log(output);
或者更实用的方式:
var input = {
"2017-03-13": ["Event 1", "Event 2"],
"2017-03-14": ["Event 1", "Event 2"],
"2017-03-15": ["Event 1", "Event 2"]
}
var output = Object.keys(input)
.map(function(key){
return { date: key, events: input[key]};
});
console.log(output);
您可以使用 Object.keys()
和 map()
来做到这一点。
var input = {
"2017-03-13": ["Event 1", "Event 2"],
"2017-03-14": ["Event 1", "Event 2"],
"2017-03-15": ["Event 1", "Event 2"]
}
var result = Object.keys(input).map(function(e) {
return {date: e, events: input[e]}
})
console.log(result)
在 ES6 中,您可以使用箭头函数在一行中完成此操作。
var result = Object.keys(input).map(e => ({date: e, events: input[e]}))
Object.keys(input).map(key => {
date: key,
events: input[key]
});