【问题标题】:How to get the length of the unique array elements of an JSON array如何获取 JSON 数组的唯一数组元素的长度
【发布时间】:2021-10-08 13:45:15
【问题描述】:

我有一个包含产品和 user_status 的 JSON 用户数组,如何从下面的 JSON 数组中获取只有活跃用户的长度

{
  "body": {
    "existing_users": [
      {
        "product": "Pack-2",
        "user_status": "Inactive"
      },
      {
        "product": "Pack-1",
        "user_status": "Active"
      },
      {
        "product": "Pack-3",
        "user_status": "Active"
      },
      {
        "product": "Pack-5",
        "user_status": "Active"
      },
      {
        "product": "Pack-1",
        "user_status": "Inactive"
      },
      {
        "product": "Pack-1",
        "user_status": "Active"
      }
    ]
  }
}

上面的 JSON 数组有一个活跃用户和非活跃用户的列表,我想从 JSON 数组中获取活跃用户的数量。

我尝试使用扩展运算符

console.log(...this.user.body.existing_users);

这给出了所有用户的列表如何添加条件并只获得活跃用户

stackblitz Link

【问题讨论】:

    标签: javascript arrays json angular typescript


    【解决方案1】:

    试试这个

    getLengthOfActiveUser() {
      const activeUsers = this.user.body.existing_users.filter(
        user => user.user_status === 'Active'
      );
    
      console.log(activeUsers.length);
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用filter 方法过滤掉非活跃用户。

      const active_users = this.user.body.existing_users.filter(user => user.user_status !== "Inactive")
      console.log(...active_users);
      

      【讨论】:

        【解决方案3】:

        const res = {
          "body": {
            "existing_users": [
              {
                "product": "Pack-2",
                "user_status": "Inactive"
              },
              {
                "product": "Pack-1",
                "user_status": "Active"
              },
              {
                "product": "Pack-3",
                "user_status": "Active"
              },
              {
                "product": "Pack-5",
                "user_status": "Active"
              },
              {
                "product": "Pack-1",
                "user_status": "Inactive"
              },
              {
                "product": "Pack-1",
                "user_status": "Active"
              }
            ]
          }
        }
        
        console.log(res.body.existing_users.filter(user => user.user_status === "Active").length)

        【讨论】:

          【解决方案4】:
            var JSONobject = { 
          "body": {
              "existing_users": [
                {
                  "product": "Pack-2",
                  "user_status": "Inactive"
                },
                {
                  "product": "Pack-1",
                  "user_status": "Active"
                },
                {
                  "product": "Pack-3",
                  "user_status": "Active"
                },
                {
                  "product": "Pack-5",
                  "user_status": "Active"
                },
                {
                  "product": "Pack-1",
                  "user_status": "Inactive"
                },
                {
                  "product": "Pack-1",
                  "user_status": "Active"
                }
              ]
            }
          }
          }
          
          function countActive(){
              var count = 0;
              for(i=0;i<=JSONobject.body.existing_users.length - 1;i++){
                  if(JSONobject.body.existing_users[i].user_status == 'Active'){
                      count++
                  }
                  
              }
              console.log(count);
          }
          countActive();
          

          您遍历对象并测试用户状态是否处于活动状态。如果是这样,你将计数器加一。循环结束后,count变量保存了活跃用户的数量。

          如果你想要一个所有活跃用户的列表,你可以这样做:

          function countActive(){
              var activeUsers = [];
              for(i=0;i<=JSONobject.body.existing_users.length - 1;i++){
                  if(JSONobject.body.existing_users[i].user_status == 'Active'){
                      activeUsers.push(JSONobject.body.existing_users[i]);
                  }
                  
              }
              console.log(activeUsers);
          }
          

          这里,数组activeUsers保存了所有活跃用户的对象。

          【讨论】:

            猜你喜欢
            • 2018-09-13
            • 2022-01-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-06-08
            • 2011-01-17
            • 1970-01-01
            相关资源
            最近更新 更多