Javascript - 检查传入对象的嵌入数组值

时间:2016-01-22 21:14:59

标签: javascript arrays

我试图创建一个函数来检查一个人是否已经投票支持交易。

当用户对交易进行投票时,他们的名字会被添加到选民阵列中。

基本上我想检查传入的交易对象,选民数组是否包含登录用户

我该怎么检查?

功能

    $scope.upVoteHome = function(deal) {

    if(XXXXXX){

        // User has not voted already.

    }else{

        deal.votes++;
        deal.voters.push(user);
        deal.$update(function() {
            //$location.path('deals/' + deal._id);
        }, function(errorResponse) {
            // rollback votes on fail also
            $scope.error = errorResponse.data.message;
        });
    }



};

交易模式

    var ItemSchema = new Schema({
    title: {
        type: String,
        default: 'NA',
        required: 'Please fill Item title',
        trim: true
    },
    voters: [{
        type: Schema.ObjectId,
        ref: 'User'
    }]

});

由于

1 个答案:

答案 0 :(得分:1)

您可以使用array.filter()

$scope.upVoteHome = function(deal) {

    var hasVoted = deal.voters.filter(function(voter) {
        return voter.ref == $scope.loggedInUser;
    }).length > 0;

    if(!hasVoted) {

        // User has not voted already.

    } else {
        // ...
    }
}