我很抱歉,如果我问了一个以前被问过的问题,我很难用词表达这个问题。
基本上,我的API返回一个对象数组,这些对象
const response.survey = [
{
1: { id: 1, user: user_1, points: 5 },
2: { id: 2, user: user_2, points: 3 }...
}
],
[
{
1: { id: 1, user: user_1, points: 10 },
2: { id: 2, user: user_2, points: 0 }...
}
],...
根据用户通过我们的表单提交的内容,这可能会持续数百个数组。我一直在思考如何将它们组合成类似以下的内容:
[
{ user: user_1, points: 15 },
{ user: user_2, points: 3 },...
]
请注意,从API返回的数据具有对象的键,如Array[Object[1]]、Array[Object[2]]等。
在我当前的开发环境中,我返回了2x个包含25个数据点的集合,因此我希望最终的对象数组的索引为25,但现在我得到了52。我相信有一个更短的方法来处理这个问题,但我不能完全理解它,我一直在兜圈子。
以下是我尝试过的方法:
let newArr = [];
response.survey.map((ballot, i) => {
for (const key in ballot) {
if (newArr.length == 0) {
let newObj = {
name: pos[key].user,
points: pos[key].points
}
newArr.push(newObj);
} else {
for (let k = 0; k < newArr.length; k++) {
if (newArr[k].name === pos[key].name) {
newArr[k].points += pos[key].points;
} else {
if (k + 1 == newArr.length) {
let newObj = {
name: pos[key].name,
points: pos[key].points
}
newArr.push(newObj);
}
}
}
}
}
}
我想我已经在这个问题上工作了这么长时间,我已经开始进入圈子,并走向错误的道路。
任何帮助都将不胜感激。
2条答案
按热度按时间xytpbqjk1#
以下是一个可行的解决方案:
p5cysglq2#
这解决了我的问题