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

Javascript - Check incoming object for embedded array value

本文关键字:嵌入式 数组 对象 检查 Javascript      更新时间:2023-09-26

我试图创建一个函数来检查一个人是否对交易进行了投票。

当用户对交易进行投票时,他们的名字将添加到选民数组中。

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

我该如何检查?

功能

    $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'
    }]
});

谢谢

您可以使用

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 {
        // ...
    }
}