如何计算数组值

Abh*_*rav 0 reactjs react-native

有3个数组,在该值中,我必须计算_activityStatus的数量:“ I”(ony I值)。我正在尝试的一种方法是

    StepsStatus :[]

    StepsStatus = StepsVaue.map(StepsVaue => {
          return StepsVaue._activityStatus;
    }); 
Run Code Online (Sandbox Code Playgroud)

我正在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
Run Code Online (Sandbox Code Playgroud)

谢谢

Chr*_*Ngo 6

您可以array.filter()用来创建新数组,仅使用符合特定条件的项目。

let iValues = StepsVaue.filter((item) => {
   return item._activityStatus === "I"
})

console.log(iValues.length)
Run Code Online (Sandbox Code Playgroud)

您也可以array.reduce()按照Antonio的建议使用,只记得定义一个默认值,否则您的结果可能不是您期望的。:)

StepsVaue.reduce((total, item) => total + (item._activityStatus === "I" ? 1 : 0), 0)
Run Code Online (Sandbox Code Playgroud)


Ant*_*nio 5

您可以使用filter()函数来过滤项目。

StepsValue.filter(item => item._activityStatus === "I").length
Run Code Online (Sandbox Code Playgroud)

或者你可以使用reduce()函数

StepsValue.reduce((count, item) => count + (item._activityStatus === "I" ? 1 : 0), 0)
Run Code Online (Sandbox Code Playgroud)

我更喜欢使用,reduce()因为它比 filter().

祝你好运。