执行条件映射连接

时间:2016-03-09 16:40:51

标签: javascript

我必须加入一个javascript对象属性数组,但要将属性值添加到字符串中,我必须检查另一个属性是否不是undefinedfalse

我现在做的事情:

var out = [];
$scope.grid.dataSource.data().map(function (user) {
  if (angular.isDefined(user.Selected) && user.Selected == true)
    out.push(user.UserPersonID);
});

var ids = out.join(",");

我想做这样的事情:

var ids = $scope.grid.dataSource.data().map(function (user) { if (user.Selected) return user.UserPersonID; }).join(",");

但如果user.Selected不正确,我会获得,的长列表('123 ,,, 234 ,,,'。

如何在不使用out数组的情况下获得相同的结果?

1 个答案:

答案 0 :(得分:4)

您正在寻找Array filter method

var out = $scope.grid.dataSource.data().filter(function(user) {
    return angular.isDefined(user.Selected) && user.Selected;
}).map(function (user) {
    return user.UserPersonID;
});