[英]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.