如何解决如何将对象键插入对象值并将其转换为数组?
我的东西是这样的
const employees = {
"0813562121": {
"city": "Melbourne","name": "Allison"
},"8753452122": {
"city": "Melbourne","name": "Aria"
}
}
我需要把它变成这样
const employees = [
{
"city": "Melbourne","name": "Allison","_id": "0813562121"
},{
"city": "Melbourne","name": "Aria","_id": "8753452122"
}
]
我想使用 Object.keys(employees )
和 Object.values(employees )
的索引,但我想不通。
解决方法
您使用 Object.values
是正确的,但我会使用 Object.entries
,因为它为您提供了属性名称及其值。然后是map
:
const result = Object.entries(employees).map(([name,value]) => ({...value,_id: name}));
现场示例:
const employees = {
"0813562121": {
"city": "Melbourne","name": "Allison"
},"8753452122": {
"city": "Melbourne","name": "Aria"
}
};
const result = Object.entries(employees).map(([name,_id: name}));
console.log(result);
使用:
-
Object.entries
从对象中获取一组[name,value]
对。 -
map
将该数组的条目映射为不同的格式 - 用于
map
回调的简洁形式的箭头函数(稍后详细介绍)。 - 在
map
回调的参数列表中进行解构以获取命名参数中的name
和value
。 - 在对象字面量中扩展语法,将对象自身的可枚举属性扩展到新对象中,并添加
_id
属性
或者,您可以修改对象而不是创建新对象,以便保留不可枚举或非自己的属性:
const result = Object.entries(employees).map(([name,value]) => {
value._id = name;
return value;
});
现场示例:
const employees = {
"0813562121": {
"city": "Melbourne",value]) => {
value._id = name;
return value;
});
console.log(result);
关键在于,employees
和 result
中都有 same 对象,而第一个对象是浅拷贝。
试试这个
const employees = {
"0813562121": {
"city": "Melbourne","name": "Aria"
}
}
let jsonVariants =[];
Object.keys(employees).forEach(function(key) {
let obj =employees[key];
obj["_id"] =key;
jsonVariants.push(obj);
});
console.log(jsonVariants);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。