gpt4 book ai didi

javascript - 获取具有数组的对象内部的值并与另一个数组进行比较

转载 作者:行者123 更新时间:2023-12-03 07:20:13 24 4
gpt4 key购买 nike

array1 = [{id: 1, email: 'test1@test.com', group_ids: ["25"], username: 'test1'},
{id: 2, email: 'test2@test.com', group_ids: ["22"], username: 'test2'},
{id: 3, email: 'test3@test.com', group_ids: ["25", "20"], username: 'test3'},
{id: 4, email: 'test4@test.com', group_ids: ["23"], username: 'test4'}]

array2 = [25, 22];

我想从 array1 中获取其在 array2 中具有 group_ids 的电子邮件列表。我试过以下方法,但我想我做错了。

var user_groupId = [];
var emails = [];
var obj = [];
for (var i=0; i < array2.length; i++) {
obj.push(array1.find(o => o.group_ids.find( b => b == array2[i])));
}

for (var i=0; i< obj.length; i++){
emails.push(obj[i].email);
}
console.log(emails);

这里我得到输出数组 ["test1@test.com", "test2@test.com"] 但不是 "test3@test.com"。非常感谢您的帮助。

最佳答案

您应该使用filtermapsome。同样,您的 id 是一次放置的字符串也不是好的做法,它们应该具有相同的类型:

array1.filter(item => item.group_ids.some(id => array2.includes(+id))).map(item => item.email)

+id 将 array1 项的字符串转换为 int

关于javascript - 获取具有数组的对象内部的值并与另一个数组进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62674368/

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