Javascript 如何将属性为“a”的数组添加到属性为“attr”的数组中b'基于第三个数组的属性,带有attr。['a','b']
我有3个数组,如下所示:Javascript 如何将属性为“a”的数组添加到属性为“attr”的数组中b'基于第三个数组的属性,带有attr。['a','b'],javascript,arrays,object,ecmascript-6,lodash,Javascript,Arrays,Object,Ecmascript 6,Lodash,我有3个数组,如下所示: Categories: 0: {id: "123", name: "Cat 1"}, 1: {id: "456", name: "Cat 2"}, 2: {id: "789", name: "Cat 3"} Account Category: 0: {categoryId: "123", supportId:"john@gmail.com" }, 1: {categoryId: "456", supportId:
Categories:
0: {id: "123", name: "Cat 1"},
1: {id: "456", name: "Cat 2"},
2: {id: "789", name: "Cat 3"}
Account Category:
0: {categoryId: "123", supportId:"john@gmail.com" },
1: {categoryId: "456", supportId:"john@gmail.com" },
2: {categoryId: "789", supportId:"sherlock@gmail.com" },
3: {categoryId: "123", supportId:"bikal@gmail.com"}
Accounts:
0: {email: "john@gmail.com", firstName: "john"},
1: {email: "sherlock@gmail.com", firstName: "sherlock"},
2: {email: "bikal@gmail.com", firstName: "bikal"}
我要补充一点:
根据类别中的id将类别划分到其特定帐户中
来自帐户的电子邮件
链接它们的唯一方法是另一个数组帐户类别,该类别具有两个字段
我对如何做到这一点感到困惑。我可以使用lodash,但即使这样,我也不确定如何执行此任务
任何帮助都将不胜感激,谢谢
编辑:
输出应如下所示:
Accounts:
0: {categories:[{id: "456", name:"Cat 2"}, {id: "123", name: "Cat 1"}], email: "john@gmail.com", firstName: "john"},
1: {categories:[{id: "789", name:"Cat 3"}], email: "sherlock@gmail.com", firstName: "sherlock"},
2: {categories:[{id: "123", name:"Cat 1"}], email: "bikal@gmail.com", firstName: "bikal"}
操作相当简单-根据categoryId找到正确的supportId,然后获取电子邮件和名字,并返回所需的属性:
const Categories=[{id:123,name:cat1},{id:456,name:cat2},{id:789,name:cat3}];
const AccountCategory=[{categoryId:123,supportId:john@gmail.com},{类别ID:456,支持ID:john@gmail.com},{类别ID:789,支持ID:sherlock@gmail.com},{categoryId:123,supportId:bikal@gmail.com}];
const Accounts=[{电子邮件:john@gmail.com,名字:john},{电子邮件:sherlock@gmail.com,firstName:sherlock},{电子邮件:bikal@gmail.com,名:bikal}];
const res=Categories.map{id,name}=>{
const{supportId}=AccountCategory.find{categoryId}=>categoryId==id;
const{email,firstName}=Accounts.find{email,firstName}=>email==supportId;
返回{id,name,email,firstName};
};
console.logres;
.作为控制台包装器{max height:100%!important;top:auto;}输出应该是什么?听起来像是要求我们为您编写代码…@JackBashford我已经编辑了预期输出的代码。请调查一下。非常感谢。这个问题还不清楚,也没有做出任何努力。在我眼里,这有点像填鸭式的喂食。另外,在AccountCategory中,如果您注意到的话,有两封邮件是针对categoryId 123的。这部分要求没有答案,不是问题陈述,因为没有努力,会引起不必要的评论/votes@Rajesh再看一遍代码,我已经按照预期的输出对其进行了编辑。@JackBashford如前所述,这是一项要求,随着我们进入讨论和提问,它将发生变化。那会使你的答案无效。因此,最好有一个问题陈述。