簡體   English   中英

Javascript-如何通過參數過濾對象數組

[英]Javascript - How to filter an array of Objects by a Parameter

我有一個變量,它是一個注釋數組。

$scope.numOfCommentsCoupon

我想擁有的是一個變量,它是數組中具有特定值的“ couponId ”的couponId的計數。

這是評論模型

    var CommentSchema = new Schema({

    created: {
        type: Date,
        default: Date.now
    },
    couponId: {
        type: String,
        trim: true
    }

});

所以我需要過濾它,然后計算它,但我不確定如何。

如果您有很多意見,可以這樣做

var count = 0;
comments.filter(function(comment,index,array){
    if (comment.couponId === "some_value") {
        count++;
    }
});

或者,您可以使用for循環對其進行迭代。 實施起來非常簡單

我想我會按照您的嘗試進行操作,並且可以使用array.filter

它看起來像這樣:

var currentCouponId = 1;
var matching = yourArray.filter(function (element) { return element.couponId == 1; });
console.log(matching.length);

您可以在數組上使用reduce方法來獲取couponId等於給定字符串的優惠券的couponId

var comments = [
    {
        couponId : "1"
    },
    {
        couponId : "2"
    }
];

var couponIdToCount = "2";

var count = comments.reduce(function(previous, current) {
    return current.couponId == couponIdToCount ? previous + 1: previous;
}, 0);

console.log(count)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM