Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的多维对象过滤_Javascript_Arrays_Json - Fatal编程技术网

javascript中的多维对象过滤

javascript中的多维对象过滤,javascript,arrays,json,Javascript,Arrays,Json,我有一个JSON响应,我想根据每个用户ID对synced值进行归档,以获得synced为false的用户数和synced为true的用户数。如果任何用户在任何活动下同步了值false,则结果应为false,否则为true。也没有必要在每个活动下都有所有用户 JSON对象如下所示: [ { “活动ID”:“302ce18c-d856-4c6a-b61c-69d5ff058c3d”, “lmsActivityIdentifier”:“2729821”, “名称”:“测试”, “总积分”:6.0,

我有一个JSON响应,我想根据每个用户ID对synced值进行归档,以获得synced为false的用户数和synced为true的用户数。如果任何用户在任何活动下同步了值false,则结果应为false,否则为true。也没有必要在每个活动下都有所有用户

JSON对象如下所示:

[
{
“活动ID”:“302ce18c-d856-4c6a-b61c-69d5ff058c3d”,
“lmsActivityIdentifier”:“2729821”,
“名称”:“测试”,
“总积分”:6.0,
“lmsUserGrades”:[
{
“用户ID”:“1cee27a4-91e3-4975-a1d8-b31ece79db10”,
“LMSUSERIDIFIER”:“9991865”,
“总积分”:2.0,
“已同步”:错误,
“版本”:1
},
{
“用户ID”:“4ed71a4f-6ae1-4218-b122-f4e9eeefc03f”,
“LMSUSERIDIFIER”:“999111”,
“总积分”:3.0,
“同步”:正确,
“版本”:1
},
{
“用户ID”:“a8fcb57a-0f59-4104-a18d-d185eb003c0c”,
“LMSUSERIDIFIER”:“9991862”,
“总积分”:4.0,
“同步”:正确,
“版本”:1
},
{
“用户ID”:“54400abe-b25d-45fe-b77c-e1a0b90f0c86”,
“LMSUSERIDIFIER”:“9991864”,
“总积分”:1.0,
“同步”:正确,
“版本”:1
},
{
“用户ID”:“05afc973-37fe-4b6c-84ac-26b8c8255988”,
“LMSUSERIDIFIER”:“9991861”,
“总积分”:3.0,
“同步”:正确,
“版本”:1
}
],
“版本”:1
},
{
“活动ID”:“46aa19a1-5e0f-4dbf-a0bc-e7bcef46a703”,
“lmsActivityIdentifier”:“27292852”,
“名称”:“会话1”,
“总积分”:1.0,
“lmsUserGrades”:[
{
“用户ID”:“4ed71a4f-6ae1-4218-b122-f4e9eeefc03f”,
“LMSUSERIDIFIER”:“9991863”,
“总积分”:1.0,
“已同步”:错误,
“版本”:1
},
{
“用户ID”:“1cee27a4-91e3-4975-a1d8-b31ece79db10”,
“LMSUSERIDIFIER”:“9991865”,
“总积分”:0.0,
“同步”:正确,
“版本”:1
},
{
“用户ID”:“a8fcb57a-0f59-4104-a18d-d185eb003c0c”,
“LMSUSERIDIFIER”:“9991862”,
“总积分”:1.0,
“同步”:正确,
“版本”:1
},
{
“用户ID”:“54400abe-b25d-45fe-b77c-e1a0b90f0c86”,
“LMSUSERIDIFIER”:“9991864”,
“总积分”:0.5,
“同步”:正确,
“版本”:1
},
{
“用户ID”:“05afc973-37fe-4b6c-84ac-26b8c8255988”,
“LMSUSERIDIFIER”:“9991861”,
“总积分”:0.0,
“同步”:正确,
“版本”:1
}
],
“版本”:1
},
{
“活动ID”:“1f5b78b6-14df-4734-a57a-bcb84a774abf”,
“lmsActivityIdentifier”:“27292849”,
“名称”:“会话2”,
“总积分”:2.0,
“lmsUserGrades”:[
{
“用户ID”:“4ed71a4f-6ae1-4218-b122-f4e9eeefc03f”,
“LMSUSERIDIFIER”:“9991863”,
“总积分”:0.0,
“已同步”:错误,
“版本”:1
},
{
“用户ID”:“1cee27a4-91e3-4975-a1d8-b31ece79db10”,
“LMSUSERIDIFIER”:“9991865”,
“总积分”:2.0,
“已同步”:错误,
“版本”:1
},
{
“用户ID”:“05afc973-37fe-4b6c-84ac-26b8c8255988”,
“LMSUSERIDIFIER”:“9991861”,
“总积分”:35.0,
“已同步”:错误,
“版本”:1
},
{
“用户ID”:“a8fcb57a-0f59-4104-a18d-d185eb003c0c”,
“LMSUSERIDIFIER”:“9991862”,
“总积分”:0.0,
“已同步”:错误,
“版本”:1
},
{
“用户ID”:“54400abe-b25d-45fe-b77c-e1a0b90f0c86”,
“LMSUSERIDIFIER”:“9991864”,
“总积分”:1.0,
“已同步”:错误,
“版本”:1
}
],
“版本”:1
},
{
“活动ID”:“e5d541e6-d373-44c3-a665-15337026bd0e”,
“lmsActivityIdentifier”:“27292850”,
“名称”:“会话3”,
“总积分”:10.0,
“lmsUserGrades”:[
{
“用户ID”:“4ed71a4f-6ae1-4218-b122-f4e9eeefc03f”,
“LMSUSERIDIFIER”:“9991863”,
“总积分”:8.0,
“已同步”:错误,
“版本”:1
},
{
“用户ID”:“1cee27a4-91e3-4975-a1d8-b31ece79db10”,
“LMSUSERIDIFIER”:“9991865”,
“总积分”:8.0,
“已同步”:错误,
“版本”:1
},
{
“用户ID”:“a8fcb57a-0f59-4104-a18d-d185eb003c0c”,
“LMSUSERIDIFIER”:“9991862”,
“总积分”:5.0,
“已同步”:错误,
“版本”:1
},
{
“用户ID”:“54400abe-b25d-45fe-b77c-e1a0b90f0c86”,
“LMSUSERIDIFIER”:“9991864”,
“总积分”:4.0,
“已同步”:错误,
“版本”:1
},
{
“用户ID”:“05afc973-37fe-4b6c-84ac-26b8c8255988”,
“LMSUSERIDIFIER”:“9991861”,
“总积分”:8.0,
“已同步”:错误,
“版本”:1
}
],
“版本”:1
},
{
“活动ID”:“a9d09f86-d74c-4868-a2cf-ec80584cfba7”,
“lmsActivityIdentifier”:“27292848”,
“名称”:“会话4”,
“总积分”:3.0,
“lmsUserGrades”:[
{
“用户ID”:“4ed71a4f-6ae1-4218-b122-f4e9eeefc03f”,
“LMSUSERIDIFIER”:“9991863”,
“总积分”:1.0,
“已同步”:错误,
“版本”:1
},
{
“用户ID”:“1cee27a4-91e3-4975-a1d8-b31ece79db10”,
“LMSUSERIDIFIER”:“9991865”,
const countSynced = (activities) => {
  let res = {
    synced: 0,
    nonSynced: 0,
  };
  for (const activity of activities){
    for (const user of activity.lmsUserGrades){
      if (user.synced) res.synced++
      else res.nonSynced++;

    }
  }
  return res;
}

const data = [
   {
      "activityId":"302ce18c-d856-4c6a-b61c-69d5ff058c3d",
      "lmsActivityIdentifier":"27292821",
      "name":"test",
      "totalPoints":6.0,
      "lmsUserGrades":[
         {
            "userId":"1cee27a4-91e3-4975-a1d8-b31ece79db10",
            "lmsUserIdentifier":"9991865",
            "totalPoints":2.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"4ed71a4f-6ae1-4218-b122-f4e9eeefc03f",
            "lmsUserIdentifier":"9991111",
            "totalPoints":3.0,
            "synced":true,
            "version":1
         },
         {
            "userId":"a8fcb57a-0f59-4104-a18d-d185eb003c0c",
            "lmsUserIdentifier":"9991862",
            "totalPoints":4.0,
            "synced":true,
            "version":1
         },
         {
            "userId":"54400abe-b25d-45fe-b77c-e1a0b90f0c86",
            "lmsUserIdentifier":"9991864",
            "totalPoints":1.0,
            "synced":true,
            "version":1
         },
         {
            "userId":"05afc973-37fe-4b6c-84ac-26b8c8255988",
            "lmsUserIdentifier":"9991861",
            "totalPoints":3.0,
            "synced":true,
            "version":1
         }
      ],
      "version":1
   },
   {
      "activityId":"46aa19a1-5e0f-4dbf-a0bc-e7bcef46a703",
      "lmsActivityIdentifier":"27292852",
      "name":"Session1",
      "totalPoints":1.0,
      "lmsUserGrades":[
         {
            "userId":"4ed71a4f-6ae1-4218-b122-f4e9eeefc03f",
            "lmsUserIdentifier":"9991863",
            "totalPoints":1.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"1cee27a4-91e3-4975-a1d8-b31ece79db10",
            "lmsUserIdentifier":"9991865",
            "totalPoints":0.0,
            "synced":true,
            "version":1
         },
         {
            "userId":"a8fcb57a-0f59-4104-a18d-d185eb003c0c",
            "lmsUserIdentifier":"9991862",
            "totalPoints":1.0,
            "synced":true,
            "version":1
         },
         {
            "userId":"54400abe-b25d-45fe-b77c-e1a0b90f0c86",
            "lmsUserIdentifier":"9991864",
            "totalPoints":0.5,
            "synced":true,
            "version":1
         },
         {
            "userId":"05afc973-37fe-4b6c-84ac-26b8c8255988",
            "lmsUserIdentifier":"9991861",
            "totalPoints":0.0,
            "synced":true,
            "version":1
         }
      ],
      "version":1
   },
   {
      "activityId":"1f5b78b6-14df-4734-a57a-bcb84a774abf",
      "lmsActivityIdentifier":"27292849",
      "name":"Session2",
      "totalPoints":2.0,
      "lmsUserGrades":[
         {
            "userId":"4ed71a4f-6ae1-4218-b122-f4e9eeefc03f",
            "lmsUserIdentifier":"9991863",
            "totalPoints":0.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"1cee27a4-91e3-4975-a1d8-b31ece79db10",
            "lmsUserIdentifier":"9991865",
            "totalPoints":2.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"05afc973-37fe-4b6c-84ac-26b8c8255988",
            "lmsUserIdentifier":"9991861",
            "totalPoints":35.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"a8fcb57a-0f59-4104-a18d-d185eb003c0c",
            "lmsUserIdentifier":"9991862",
            "totalPoints":0.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"54400abe-b25d-45fe-b77c-e1a0b90f0c86",
            "lmsUserIdentifier":"9991864",
            "totalPoints":1.0,
            "synced":false,
            "version":1
         }
      ],
      "version":1
   },
   {
      "activityId":"e5d541e6-d373-44c3-a665-15337026bd0e",
      "lmsActivityIdentifier":"27292850",
      "name":"Session3",
      "totalPoints":10.0,
      "lmsUserGrades":[
         {
            "userId":"4ed71a4f-6ae1-4218-b122-f4e9eeefc03f",
            "lmsUserIdentifier":"9991863",
            "totalPoints":8.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"1cee27a4-91e3-4975-a1d8-b31ece79db10",
            "lmsUserIdentifier":"9991865",
            "totalPoints":8.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"a8fcb57a-0f59-4104-a18d-d185eb003c0c",
            "lmsUserIdentifier":"9991862",
            "totalPoints":5.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"54400abe-b25d-45fe-b77c-e1a0b90f0c86",
            "lmsUserIdentifier":"9991864",
            "totalPoints":4.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"05afc973-37fe-4b6c-84ac-26b8c8255988",
            "lmsUserIdentifier":"9991861",
            "totalPoints":8.0,
            "synced":false,
            "version":1
         }
      ],
      "version":1
   },
   {
      "activityId":"a9d09f86-d74c-4868-a2cf-ec80584cfba7",
      "lmsActivityIdentifier":"27292848",
      "name":"Session4",
      "totalPoints":3.0,
      "lmsUserGrades":[
         {
            "userId":"4ed71a4f-6ae1-4218-b122-f4e9eeefc03f",
            "lmsUserIdentifier":"9991863",
            "totalPoints":1.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"1cee27a4-91e3-4975-a1d8-b31ece79db10",
            "lmsUserIdentifier":"9991865",
            "totalPoints":2.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"a8fcb57a-0f59-4104-a18d-d185eb003c0c",
            "lmsUserIdentifier":"9991862",
            "totalPoints":1.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"54400abe-b25d-45fe-b77c-e1a0b90f0c86",
            "lmsUserIdentifier":"9991864",
            "totalPoints":2.0,
            "synced":false,
            "version":1
         },
         {
            "userId":"05afc973-37fe-4b6c-84ac-26b8c8255988",
            "lmsUserIdentifier":"9991861",
            "totalPoints":2.0,
            "synced":false,
            "version":1
         }
      ],
      "version":1
   }
];

console.log(countSynced(data));
    let users = new Map()
    
    for (const activity in activities) {
      for (const grades in activity.lmsUserGrades) {
         // You mentioned false should overwrite for users with true values
      if (users.has(grade.userId) && grade.synced === false) {
        users.set(grade.userId, false)
      } else { 
            users.set(grade.userId, grade.synced)
     }
    }
    
    let syncedUsers = 0
    let unSyncedUsers = 0
    for (let synced of users.values()){
    synced ? syncedUsers++ : unSyncedUsers++
}