添加属性backbone.js

时间:2014-01-24 17:53:27

标签: javascript backbone.js underscore.js

homeTeam = this.collection.where({teamName: 'Bulls'});

var totalPoints = [];
_.each(homeTeam, function(team) {
    var total = team.get('points');
    totalPoints.push(total);
});

var sum = _.reduce(totalPoints, function(memo, num){ return memo + num; }, 0);
console.log(sum);

在上面我试图通过迭代该属性,然后将这些值推送到数组中来获得主队所拥有的总分数。最后我使用了underscore.js的_.reduce方法,但我在控制台中没有得到正确的数字。

实际的分数是10,12,18,3,0,0当我console.log(sum)得到0101218300时,所以它将所有这些单独的数字变成一个巨大的数字而不是通过添加总和而只是将它们组合起来

所以显然我错过了一些东西,希望有一种更好的方式来添加属性而不是我这样做。

1 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为总点数存储为字符串数组。试试

.each(homeTeam, function(team) {
    //convert the string to int
    var total = parseInt(team.get('points'),10);
    totalPoints.push(total);
});