javascript - Underscore pluck 不适用于模型数组?

标签 javascript backbone.js underscore.js

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 数组的控制台日志的屏幕截图。

enter image description here

最佳答案

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/

相关文章:

javascript - 如何在angularjs Material 设计中显示标签标题居中对齐

javascript - 按字母顺序对 Backbone 集合进行排序

javascript - 尝试获取唯一的对象列表

javascript - jquery tablesorter 如何用图像对表格进行排序

javascript - vueJs 分页和过滤

javascript - 如何使用仅返回单元格 a 的日期的公式自动填充单元格 C?

javascript - 使用 lodash 进行数据操作(某种左连接)

javascript - 以正确的方式使用 Backbone 集合将它们传递到 subview 中,然后再传递到模板引擎中

javascript - Backbone.js View 在其创建期间的生命周期

javascript - 主干模板嵌套在另一个模板中