【发布时间】:2022-01-10 19:43:33
【问题描述】:
我一直在研究一个数据格式问题,终于得到了答案。
但是,我的答案循环太多,在实现的时候会减慢时间复杂度。
下面是我的代码:
const userInfo = [];
for (let i = 0; i < projects.length; i++) {
const userProject = projects[i].userProjects;
for (let j = 0; j < userProject.length; j++) {
const userExist = userInfo.some((item) =>
item.userId.includes(userProject[j].user.userId)
);
if (!userExist) userInfo.push(userProject[j].user);
}
}
userInfo.forEach((user) => {
let tempArr = [];
for (let i = 0; i < projects.length; i++) {
const userProject = projects[i].userProjects;
for (let j = 0; j < userProject.length; j++) {
if (user.userId === userProject[j].userId)
tempArr.push({
projectId: projects[i].projectId,
name: projects[i].name,
});
}
}
user.project = tempArr;
});
console.log(userInfo);
有什么方法可以优化我的代码吗?我试图将嵌套的 for 循环组合在一起,但没有工作......
请帮忙。非常感谢!!!
【问题讨论】:
-
您需要的是一个更好的数据结构,该结构根据您的应用程序需要执行的操作进行组织。
-
分享您的数据并请告诉我们预期的输出是什么
标签: javascript for-loop data-structures