使用 lodash,如何最简洁地完成如下的提取任务?
源数据:
config:{
paper:{
id:require('tools/rand-str')(),
title:'-',
selector:['-','-','-'],
val:1
},
paint:{
id:require('tools/rand-str')(),
title:'-',
selector:['-','-'],
val:1
}
optimize:{
id:require('tools/rand-str')(),
title:'-',
emphasis:true,
selector:['-','-'],
val:0
}
}
目标数据:
val:{
paper:1,
paint:1,
optimize:0
}
id:{
paper:'rXTUtK',
paint:'r8LizN',
optimize:'rfIpES'
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
哪里需要用 lodash,原生脚本就解决了
如果需要所有属性,而不只是
val
和id
,可以把["val", "id"]
换成Object.keys(options)
。如果用 lodash,大概会用到它的
transform
,其实和原生的reduce
也差不多。又翻了一遍 lodash 文档,找到了这个函数:
_.mapValues
一行命令解决需求:
_.mapValues(config, function(v) { return v.val; })