微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将对象键插入对象值并​​将其转换为数组?

如何解决如何将对象键插入对象值并​​将其转换为数组?

我的东西是这样的

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 回调的参数列表中进行解构以获取命名参数中的 namevalue
  • 在对象字面量中扩展语法,将对象自身的可枚举属性扩展到新对象中,并添加 _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);

关键在于,employeesresult 中都有 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 举报,一经查实,本站将立刻删除。