gpt4 book ai didi

javascript - 对象操作javascript,将对象的值添加到对象数组中

转载 作者:行者123 更新时间:2023-12-03 04:28:55 26 4
gpt4 key购买 nike

举个例子就可以说明问题:

对象数组:

[{ 
userId: 'ab4e3870-287e-11e7-b5a1-abb6183e9866',
email: 'email1@hotmail.com'
},{
userId: 'ae149220-2883-11e7-bbf9-1fb134f2b4ad',
email: 'email2@hotmail.com'
}]

对象

{ 
'ab4e3870-287e-11e7-b5a1-abb6183e9866': { name: 'john', roles: 'detective'},
'ae149220-2883-11e7-bbf9-1fb134f2b4ad': { name: 'james', roles: 'plumber'},
}

我想要的结果是:

[{ 
userId: 'ab4e3870-287e-11e7-b5a1-abb6183e9866',
email: 'email1@hotmail.com',
name: 'john',
roles: 'detective'
},{
userId: 'ae149220-2883-11e7-bbf9-1fb134f2b4ad',
email: 'email2@hotmail.com',
name: 'james',
roles: 'plumber'
}]

所以基本上,与对象中的 userId 匹配的键的值被添加到数组中的该对象中。

是否有一些我看不到的简单方法可以做到这一点? ES6 中没有外部库?

最佳答案

var data = [{ 
userId: 'ab4e3870-287e-11e7-b5a1-abb6183e9866',
email: 'email1@hotmail.com'
},{
userId: 'ae149220-2883-11e7-bbf9-1fb134f2b4ad',
email: 'email2@hotmail.com'
}]

var d = {
'ab4e3870-287e-11e7-b5a1-abb6183e9866': { name: 'john', roles: 'detective'},
'ae149220-2883-11e7-bbf9-1fb134f2b4ad': { name: 'james', roles: 'plumber'},
};

使用 ES6 扩展运算符 ...

data = data.map(function(item) {
return {...item, ...d[item.userId]}
});

ES5:通过手动添加属性

data = data.map(function(item) {
item.name = d[item.userId].name;
item.roles = d[item.userId].roles;
return item;
});

关于javascript - 对象操作javascript,将对象的值添加到对象数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43578630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com