有3个数组,在这个值中,我必须计算_activityStatus的计数:“ I”(ony I值)。 我尝试的一种方法是
StepsStatus :[]
StepsStatus = StepsVaue.map(StepsVaue => {
return StepsVaue._activityStatus;
});
我正在StepsStatus中获取所有_activityStatus。现在,我只需要计算我的价值即可。
currentNextActivity: Array(3)
0:
__typename: "CurrentNextActivity"
_activityName: "FXL_ACT1"
_activityStatus: "I"
_maxHoldTime: "60"
_userName: "tecnotree"
1:
__typename: "CurrentNextActivity"
_activityName: "FXL_ACT2"
_activityStatus: "I"
_maxHoldTime: "60"
_userName: "tecnotree"
__proto__: Object
2:
__typename: "CurrentNextActivity"
_activityName: "FXL_ACT3"
_activityStatus: "N"
_maxHoldTime: "120"
_userName: null
谢谢
答案 0 :(得分:6)
您可以使用array.filter()
仅使用符合特定条件的项目来创建新数组。
let iValues = StepsVaue.filter((item) => {
return item._activityStatus === "I"
})
console.log(iValues.length)
您也可以按照Antonio的建议使用array.reduce()
,只记得定义一个默认值,否则结果可能与预期不符。 :)
StepsVaue.reduce((total, item) => total + (item._activityStatus === "I" ? 1 : 0), 0)
答案 1 :(得分:3)
您可以使用filter()
函数来过滤项目。
StepsValue.filter(item => item._activityStatus === "I").length
或者您可以使用reduce()
函数
StepsValue.reduce((count, item) => count + (item._activityStatus === "I" ? 1 : 0), 0)
我更喜欢使用reduce()
,因为它比filter()
使用更少的内存。
祝你好运。