gpt4 book ai didi

javascript - 如何根据复杂性优化我的 JS 代码

转载 作者:行者123 更新时间:2023-12-02 23:09:10 27 4
gpt4 key购买 nike

我有 2 个数组:

user = [
{ id: 33, first_name: 'Alex', last_name: 'Shelly' },
{ id: 23, first_name: 'Mike', last_name: 'Marley' }
]

selectedNotes = [
{ employee_id: 33, notes: 'test' },
{ employee_id: 109, notes: 'test1' }
]

我正在尝试查找 idemployee_id 匹配的用户的 firstnamelastname selectedNotes 数组。 (例如上述案例中的 Alex Shelly)。

我有:

for (let i = 0; i < user.length; i++) {
for (let j = 0; j < selectedNotes.length; j++) {
if (user[i].id == selectedNotes[j].employee_id) {
selectedNotes.splice(j, 0, {
by_name: user[i].first_name + ' ' + user[i].last_name
}); // adding a new property in the array if the id matches
}
}
}

在优化方面有更好的方法吗?

最佳答案

我会创建一个Map对象并存储按id索引的用户,这样以后用户搜索会更高效

如果用户只需要一次并且用户数组不是那么大,我会执行 map /查找解决方案

const users = [
{
id: 33,
first_name: 'Alex',
last_name: 'Shelly'
},
{
id: 23,
first_name: 'Mike',
last_name: 'Marley'
}
];

const selectedNotes = [
{
employee_id: 33,
notes: 'test'
},
{
employee_id: 109,
notes: 'test1'
}
];

const usersMap = new Map();

for (const user of users) {
usersMap.set(user.id, user);
}

const selectedNotesWithUser = selectedNotes.map(note => {
const user = usersMap.get(note.employee_id);

if (!user) {
// Do you want to do something if there is no user?
console.warn(`there is no user for employee id: ${note.employee_id}`);
}

return Object.assign(note, user);
});

console.log(selectedNotesWithUser);

// map & find
const selectedNotesWithUser2 = selectedNotes.map(note => {
const user = users.find(user => user.id === note.employee_id);

if (!user) {
// Do you want to do something if there is no user?
console.warn(`there is no user for employee id: ${note.employee_id}`);
}

return Object.assign(note, user);
});

console.log(selectedNotesWithUser2);

关于javascript - 如何根据复杂性优化我的 JS 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57453604/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com