javascript - 分配对象索引以在对象内部可用

标签 javascript object

我有一个对象:

    var contacts = 
{
  'KxN5RVjE1zoGqrzYKOV' :
  {email: "dfdfdf@dfdfd.com", firstName: "Lora", lastName: "Did"},

  '-KxN7AkNyiVjMYReZzbQ':
  {email: "teste@test.com", firstName: "Tom", lastName: "Smith"},

  '-KxN743hpoTVWIqR75XD':
  {email: "user@test.com", firstName: "Polina", lastName: "Polina"}

};

我需要让它成为一个值,所以它看起来像这样:

var contacts = 
{
  'KxN5RVjE1zoGqrzYKOV' :
  {email: "dfdfdf@dfdfd.com", firstName: "Lora", lastName: "Did", id:'KxN5RVjE1zoGqrzYKOV'},

  '-KxN7AkNyiVjMYReZzbQ':
  {email: "user@test.com", firstName: "Tom", lastName: "Smith", id: '-KxN7AkNyiVjMYReZzbQ'},

  '-KxN743hpoTVWIqR75XD':
  {email: "user@test.com", firstName: "Polina", lastName: "Polina", id:'-KxN743hpoTVWIqR75XD'}

};

这是我目前的代码,没有添加任何东西,只是控制同一个旧对象:

var results = Object.keys(contacts).map((key, id) => {
  var contact = contacts[key];
  Object.assign({}, contact, {id: key});
  console.log(contact);
});

有什么想法我想念的是什么,我还能尝试什么吗?

最佳答案

如果你不介意修改原始对象,你可以使用 forEach 循环遍历键并将 id 添加到每个元素:

var contacts = 
{
  'KxN5RVjE1zoGqrzYKOV' :
  {email: "dfdfdf@dfdfd.com", firstName: "Lora", lastName: "Did"},

  '-KxN7AkNyiVjMYReZzbQ':
  {email: "teste@test.com", firstName: "Tom", lastName: "Smith"},

  '-KxN743hpoTVWIqR75XD':
  {email: "user@test.com", firstName: "Polina", lastName: "Polina"}

};

Object.keys(contacts).forEach(key => {
  contacts[key]['id'] = key;
});

console.log(contacts);

关于javascript - 分配对象索引以在对象内部可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46992469/

相关文章:

c# - .NET:如何开发用户可以使用鼠标进行电子签名的功能?

javascript - 使用 jQuery 更新滚动条上的多个背景位置?

javascript - Javascript 中的函数之间共享变量

javascript - 在 Javascript 中遍历字典

Javascript:第 1 行字符 2 上预期的对象

javascript - jQuery 无法正确解析 JSON

javascript - 理解javascript对象(不同类型的声明)

javascript - 我声明这个 Javascript 变量的方式有什么问题?

java - 为什么一个已实现的接口(interface)方法被声明为公共(public)的?

javascript - 过滤包含数组的对象数组