JJJ*_*jim 6 javascript underscore.js lodash
我有一个像这样结构的对象:
var my_object = {
first_item: {important_number: 4},
second_item: {important_number: 6},
}
Run Code Online (Sandbox Code Playgroud)
但是,我想要一个像这样结构的对象:
{
first_item: 4,
second_item: 6,
}
Run Code Online (Sandbox Code Playgroud)
我希望能够得到这样的结果_.pluck:
_.pluck(my_object, "important_number")
Run Code Online (Sandbox Code Playgroud)
但这给了我:
[0: 4, 1: 6]
Run Code Online (Sandbox Code Playgroud)
很好,但我需要对象的实际名称.我摆弄着并最终得到了这个:
_.reduce(my_object, function(memo, val, key) {
memo[key] = val.content;
return memo;
}, {});
Run Code Online (Sandbox Code Playgroud)
哪个有所期望的效果,但并不像我想的那么简单.在下划线/ lodash中是否有更好的解决方案,或者这是最好的解决方案?
在Lo-Dash中你也可以使用_.transform,它是_.reduce的一个更强大的替代品:
_.transform(my_object, function(memo, val, key) {
memo[key] = val.important_number;
});
Run Code Online (Sandbox Code Playgroud)
实际上你所描述的 - 即" pluck对象值" - 可以写成:
_.mapValues(my_object, "important_number")
Run Code Online (Sandbox Code Playgroud)
参见文档_.mapValues.
_.createCallback- 字符串属性魔法 - 在Lo-Dash中遍布各处使用:搜索"_.pluck" style callback.
| 归档时间: |
|
| 查看次数: |
17205 次 |
| 最近记录: |