使用角度和/或下划线从对象获取所有真正的键

时间:2013-11-14 00:07:33

标签: javascript angularjs underscore.js

我在Angular中有一个像这样的对象:

$scope.addEmployeeDepartments={ 5066549580791808=true, 6192449487634432=true, 7192449487634432=false}

如何生成像这样的逗号分隔字符串

var ids="5066549580791808, 6192449487634432"

包含所有真实的键?

顺便说一句,我在我的解决方案的其他部分使用了underscore.js,所以我不知道这是否更容易。

感谢

托马斯

1 个答案:

答案 0 :(得分:1)

您可以一次性使用reduce执行此操作:

var collect_trues_in = function(a, v, k) {
    if(v)
        a.push(k);
    return a;
};
var csv = _($scope.addEmployeeDepartments).reduce(collect_trues_in, [ ]).join(', ');

演示:http://jsfiddle.net/ambiguous/6CEZW/