Я работаю с JavaScript. Это может быть относительно проще для профессиональных разработчиков. Я хочу l oop через массив объектов и фильтровать объекты с тем же именем пользователя и добавлять их шаги. Следующий ответ - это ответ от моего API:
{
"status": 1,
"UserList": [
{
"_id": "5e8c04882e31eb0fa0f240dd",
"userName": "devyansh",
"starttime": 1586073600,
"endtime": 1586077200,
"steps": 1000,
"createdTime": 1586234504,
"__v": 0
},
{
"status": "1",
"_id": "5e8c04f82e31eb0fa0f240df",
"userName": "devyansh",
"starttime": 1586080800,
"endtime": 1586084400,
"steps": 47,
"createdTime": 1586234616,
"__v": 0
},
{
"_id": "5e8c282e5040a21c1498d95b",
"userName": "amit",
"starttime": 1586170800,
"endtime": 1586131200,
"steps": 899,
"createdTime": 1586243630,
"__v": 0
},
}
Мне нужно отфильтровать этот UserList, используя userName, и добавить шаги, если userName будет идентичным. Вот как я хочу получить ответ:
{
"status": 1,
"finalList": [
{
"totalsteps": 1047,
"list": [
{
"_id": "5e8c04882e31eb0fa0f240dd",
"userName": "devyansh",
"starttime": 1586073600,
"endtime": 1586077200,
"steps": 1000,
"createdTime": 1586234504,
"__v": 0
},
{
"status": "1",
"_id": "5e8c04f82e31eb0fa0f240df",
"userName": "devyansh",
"starttime": 1586080800,
"endtime": 1586084400,
"steps": 47,
"createdTime": 1586234616,
"__v": 0
}
],
},
{
"totalsteps": 899,
"list": [
"_id": "5e8c282e5040a21c1498d95b",
"userName": "amit",
"starttime": 1586170800,
"endtime": 1586131200,
"steps": 899,
"createdTime": 1586243630,
"__v": 0
],
},
]
}
Я уже пробовал это, но не получил ожидаемый результат,
var nameArray = []
foundData.map((data) => {
if (!nameArray.includes(data.userName)){
nameArray.push(data.userName)
}
})
console.log("nameArray",nameArray)
var finalArray = nameArray.map((data1) => {
return( foundData.filter((data) => {
return data1 === (data.userName)
}))
})
console.log("finalArray",finalArray)
Спасибо, заранее. Буду признателен за любую оказанную помощь.