我已经重新实现了我需要的内容,但是我怀疑这个功能已经包含在underscore中了,因为它非常简单并与许多其他函数密切相关。但是我想不出它应该叫什么。
基本上,我想要的是一个能够处理对象并返回对象而不是数组(带有其关联键)的_.pluck版本。
例如,如果我有这样一个对象:
这个转换被称为什么,它是否已经包含在underscore中?我用jQuery的each循环自己写了一个简单版本,因为我比较熟悉jQuery(如下所示),但如果可能的话,我更愿意使用库中的一个。
基本上,我想要的是一个能够处理对象并返回对象而不是数组(带有其关联键)的_.pluck版本。
例如,如果我有这样一个对象:
elements: {
steam: {
temperature: 100,
color: 'orange',
state: 'gas'
},
water: {
temperature: 50,
color: 'blue',
state: 'liquid'
},
ice: {
temperature: 0,
color: 'white',
state: 'solid'
}
}
我希望调用_.something(elements, 'temperature')
并获得以下返回结果
{
steam: 100,
water: 50,
ice: 0
}
与其使用_.pluck(elements, 'temperature')
返回的结果为
[100, 50, 0]
这个转换被称为什么,它是否已经包含在underscore中?我用jQuery的each循环自己写了一个简单版本,因为我比较熟悉jQuery(如下所示),但如果可能的话,我更愿意使用库中的一个。
$.objPluck = function(obj, key) {
var ret = {};
$.each(obj, function(k, value) {
ret[k] = value[key];
});
return ret;
}
Array.map
方法,基本上就是你正在做的事情,但是针对对象。 - IanArray.map
保留键名? - Brad Dwyer