Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 如何获取集合中符合特定条件的项目计数?_Backbone.js_Underscore.js - Fatal编程技术网

Backbone.js 如何获取集合中符合特定条件的项目计数?

Backbone.js 如何获取集合中符合特定条件的项目计数?,backbone.js,underscore.js,Backbone.js,Underscore.js,我有这样的收藏: { "items": [ { "id": "123", "meta": { "activity": 2 } }, { "id": "13423", "meta": { "activity": 4 } } ]} 给定集合,如何获取集合的总活动?在上述情况下,结果为6 我使用的是主干线和下划线。在下划线中,您可以使用函数,该函数将使用给定的迭代器函数将值列表

我有这样的收藏:

{ "items": [
    {
     "id": "123",
     "meta": {
        "activity": 2
     }
    },
    {
     "id": "13423",
     "meta": {
        "activity": 4
     }
    }
]}
给定集合,如何获取集合的总活动?在上述情况下,结果为6


我使用的是主干线和下划线。

在下划线中,您可以使用函数,该函数将使用给定的迭代器函数将值列表缩减为单个值

var myCollection = { "items": [
    {
        "id": "123",
        "meta": {
            "activity": 2
        }
    },
    {
        "id": "13423",
        "meta": {
            "activity": 4
        }
    }
]};

var totalActivity = _.reduce(myCollection.items, function(memo, item){ return memo + item.meta.activity; }, 0);

您使用的是下划线.js,因此您可以使用一些好的工具。请查看以开始

var flatArray = _.map(collection.items, function(x){return x.meta.activity;});
// should return: [2,4]
然后可以使用将其转换为单个值

var total = _.reduce(flatArray, function(memo, num) {return memo + num;}, 0);
// should return: 6
在underline.js中还有很多其他很棒的工具,值得一看,看看是否还有其他适合您的工具