var currentVideos = this.get('items').pluck('video');
// TODO: Why does pluck not work here?
var currentVideosDurations = _.map(currentVideos, function (currentVideo) {
return currentVideo.get('duration');
});
var test = _.pluck(currentVideos, 'duration');
console.log("Test:", test);
我想知道为什么我的第二个 pluck 不起作用,但我的 map 工作正常?我认为这些是等效的用法。
这是显示 this.get('items') 和 currentVideos 数组的控制台日志的屏幕截图。
最佳答案
Backbone 模型对象不存储您从顶级 javascript 对象的模型获取
的属性。 currentVideo
Backbone 模型对象实际上将属性存储在 javascript 对象的更深处,在 (currentVideo.attributes
) 中。
_.pluck(currentVideos, 'duration')
检查不存在的顶级属性(例如 currentVideo['duration']
)。
区别在于 Backbone Model 对象比基本的 javascript 对象更复杂,并且不通过仅检索 object['attrName']
来get
属性。
关于javascript - Underscore pluck 不适用于模型数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18237779/