【发布时间】:2020-07-20 12:15:27
【问题描述】:
我正在使用 JavaScript。对于专业开发人员来说,这可能相对容易一些。我想遍历对象数组并过滤具有相同用户名的对象并添加它们的步骤。以下响应是来自我的 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
},
}
我需要使用用户名过滤这个用户列表,如果发现用户名相同,则添加步骤。这是我希望的响应方式,
{
"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)
谢谢,提前。任何帮助深表感谢。
【问题讨论】:
-
这纯粹是一个算法问题,并不是一个很复杂的问题。在要求我们为您解决之前,请展示您尝试解决的方法:) 提示:您需要迭代数组才能实现它
标签: javascript arrays node.js object