我有一个对象:
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/