Rob*_*der 28 javascript arrays javascript-objects
给定一个JavaScript对象,如何将其转换为对象数组(每个对象都有键值)?
例:
var data = { firstName: 'John', lastName: 'Doe', email: 'john.doe@gmail.com' }
Run Code Online (Sandbox Code Playgroud)
结果如下:
[
{ key: 'firstName', value: 'John' },
{ key: 'lastName', value: 'Doe' },
{ key: 'email', value: 'john.doe@gmail.com' }
]
Run Code Online (Sandbox Code Playgroud)
ati*_*589 53
var data = { firstName: 'John', lastName: 'Doe', email: 'john.doe@gmail.com' }
var output = Object.entries(data).map(([key, value]) => ({key,value}));
console.log(output);Run Code Online (Sandbox Code Playgroud)
灵感来自这篇文章
isv*_*all 15
使用map功能
var data = { firstName: 'John', lastName: 'Doe', email: 'john.doe@gmail.com' };
var result = Object.keys(data).map(key => ({ key, value: data[key] }));
console.log(result);
Run Code Online (Sandbox Code Playgroud)
小智 10
您可以迭代对象的属性并为每个属性创建一个新对象.
var data = { firstName: 'John', lastName: 'Doe', email: 'john.doe@gmail.com' };
var result = [];
for(var key in data)
{
if(data.hasOwnProperty(key))
{
result.push({
key: key,
value: data[key]
});
}
}
Run Code Online (Sandbox Code Playgroud)
先前的答案使我认为有更好的方法...
Object.keys(data).map(function(key) {
return { key, value: data[key] };
});
Run Code Online (Sandbox Code Playgroud)
或在ES6中使用箭头功能:
Object.keys(data).map((key) => ({ key, value: data[key] }));
Run Code Online (Sandbox Code Playgroud)
简化生活,并在地图中使用es6语法
var output = Object.keys(data).map(key => {
return {
key: key,
value: data[key]
};
})
Run Code Online (Sandbox Code Playgroud)