Javascript 将一个数组转换为另一个数组
我想使用lodash 2.4.2将此数组转换为另一个数组: 权限将映射到角色中。我们不接触其他属性 发件人: 到这个数组Javascript 将一个数组转换为另一个数组,javascript,lodash,Javascript,Lodash,我想使用lodash 2.4.2将此数组转换为另一个数组: 权限将映射到角色中。我们不接触其他属性 发件人: 到这个数组 { "items": [ { "_id": "admin", "roles": [ "ROLE_ADMIN" ] }, { "_id": "user", "role": [
{
"items": [
{
"_id": "admin",
"roles": [
"ROLE_ADMIN"
]
},
{
"_id": "user",
"role": [
"ROLE_USER"
]
}
]
}
你能帮我吗?如前所述,在以后的帖子中,你必须提供你为解决问题而编写的代码示例
以下是解决方案,非常简单:
const initialObject = {
"items": [
{
"_id": "admin",
"authorities": [
{
"name": "ROLE_ADMIN"
}
]
},
{
"_id": "user",
"authorities": [
{
"name": "ROLE_USER"
}
]
}
]
}
const processedObject = _
.map(initialObject.items, item => {
return {
_id: item._id,
roles: _.map(item.authorities, a => a.name)
}
})
这只是密钥名称的重新映射。出于性能原因,我会尽量避免使用
delete
。您可以看到其中的性能差异,仅当对象稍后被持久化时才使用“delete”
for (var item of items) {
item.roles = item.authorities
// possible but slow
// delete item.authorities
item.authorities = undefined
}
编辑:@vanelizarov代码甚至更好,如果你想避免对象本身的变异并清理属性。但速度也较慢
vanelizarov code: x 5,025,370 ops/sec ±1.30% (90 runs sampled)
my code: x 31,583,811 ops/sec ±0.95% (92 runs sampled)
Stackoverflow不是免费的代码编写服务。展示你的尝试。这里的目标是帮助您修复代码
vanelizarov code: x 5,025,370 ops/sec ±1.30% (90 runs sampled)
my code: x 31,583,811 ops/sec ±0.95% (92 runs sampled)