gpt4 book ai didi

基于二级数组键的Javascript数组过滤器

转载 作者:行者123 更新时间:2023-12-03 04:51:09 24 4
gpt4 key购买 nike

我正在尝试过滤具有 2 级子级的数组。我可以过滤数组的第一级,但不能过滤第二级。我试图返回一个在 collaborators 下具有特定 email 的数组。这是结构

enter image description here

这是代码。此代码与 email 不匹配,因此返回数组中的所有项目

this.firebase.list('/todo').
map(data => data.filter((e) => {
return e.collaborators.filter((x) => {
return x.email == email;
});
}));

示例 JSON:

{
"todo" : {
"-Kee7m7WkNDhrbX_0Ycb" : {
"collaborators" : [ {
"email" : "test@gmail.com",
"name" : "test"
},
{
"email" : "test1@gmail.com",
"name" : "test1"
} ],
"created_at" : 1488913112569,
"created_by" : "test@gmail.com",
"preview" : "",
"title" : "test",
"updated_at" : 1488913112569
},
"-Kee7m7WkNDhrbX_0Ycb" : {
"collaborators" : [ {
"email" : "test@gmail.com",
"name" : "test"
},
{
"email" : "test2@gmail.com",
"name" : "test2"
} ],
"created_at" : 1488913112569,
"created_by" : "test@gmail.com",
"preview" : "",
"title" : "test",
"updated_at" : 1488913112569
}
}
}

所需输出:

仅第一个包含电子邮件 test1@gmail.com

的数组

最佳答案

我不确定您想要的输出是什么,但希望以下示例对您有所帮助。

希望这有帮助。

var obj = {
"todo" : {
"-Kee7m7WkNDhrbX_0Yca" : {
"collaborators" : [ {
"email" : "test@gmail.com",
"name" : "test"
},
{
"email" : "test1@gmail.com",
"name" : "test1"
} ],
"created_at" : 1488913112569,
"created_by" : "test@gmail.com",
"preview" : "",
"title" : "test",
"updated_at" : 1488913112569
},
"-Kee7m7WkNDhrbX_0Ycb" : {
"collaborators" : [ {
"email" : "test@gmail.com",
"name" : "test"
},
{
"email" : "test2@gmail.com",
"name" : "test2"
} ],
"created_at" : 1488913112569,
"created_by" : "test@gmail.com",
"preview" : "",
"title" : "test",
"updated_at" : 1488913112569
}
}
};

var email = "test1@gmail.com";
var result = [];

for(var key in obj["todo"]) {
obj["todo"][key].collaborators.filter((x) => {
if ( x.email == email )
result.push( obj["todo"][key] );
});
}

console.log(result);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于基于二级数组键的Javascript数组过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42656095/

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