Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何根据id获取相应的JSON对象_Javascript_Underscore.js - Fatal编程技术网

Javascript 如何根据id获取相应的JSON对象

Javascript 如何根据id获取相应的JSON对象,javascript,underscore.js,Javascript,Underscore.js,如何根据Id获取相应的嵌套JSON对象。下面是我完整的JSON示例 [ { "id": 1, "title": "ASD Headquarters", "items": [ { "id": 11, "title": "San Jose", "items": [ { "id": 13, "title": "Jensen Chapman's Te

如何根据Id获取相应的嵌套JSON对象。下面是我完整的JSON示例

[ { "id": 1, "title": "ASD Headquarters", "items": [ { "id": 11, "title": "San Jose", "items": [ { "id": 13, "title": "Jensen Chapman's Team", "items": [ { "id": 14, "title": "Jimmy John" }, { "id": 15, "title": "Daniel Mills" }, { "id": 16, "title": "Chris Boden" } ] } ] }, { "id": 12, "title": "Irvine", "items": [ { "id": 23, "title": "Tracey Chapman's Team", "items": [ { "id": 24, "title": "San Jesus" }, { "id": 25, "title": "Fat Albert" }, { "id": 26, "title": "Connor McDavid" } ] } ] }, { "id": 30, "title": "San Diego", "items": [ { "id": 31, "title": "Duran Duran's Team", "items": [ { "id": 32, "title": "Amberlynn Pinkerton" }, { "id": 33, "title": "Tony Mejia" }, { "id": 34, "title": "Richard Partridge" }, { "id": 35, "title": "Elliot Stabler" } ] }, { "id": 40, "title": "Steely Dan's Team", "items": [ { "id": 36, "title": "Tony Stark" }, { "id": 37, "title": "Totally Rad" }, { "id": 38, "title": "Matt Murdock" }, { "id": 39, "title": "Stan Lee" } ] } ] } ] } ] [ { “id”:1, “名称”:“建筑署总部”, “项目”:[ { “id”:11, “头衔”:“圣何塞”, “项目”:[ { “id”:13, “头衔”:“詹森·查普曼团队”, “项目”:[ { “id”:14, “标题”:“吉米·约翰” }, { “id”:15, “标题”:“丹尼尔·米尔斯” }, { “id”:16, “标题”:“克里斯·博登” } ] } ] }, { “id”:12, “标题”:“欧文”, “项目”:[ { “id”:23, “标题”:“特雷西·查普曼的团队”, “项目”:[ { “id”:24, “标题”:“圣耶稣” }, { “id”:25, “头衔”:“胖艾伯特” }, { “id”:26, “标题”:“康纳·麦克达维” } ] } ] }, { “id”:30, “标题”:“圣地亚哥”, “项目”:[ { “id”:31, “头衔”:“Duran Duran的团队”, “项目”:[ { “id”:32, “标题”:“Amberlynn Pinkerton” }, { “id”:33, “头衔”:“托尼·梅加” }, { “id”:34, “标题”:“理查德·帕特里奇” }, { “id”:35, “标题”:“Elliot Stabler” } ] }, { “id”:40, “头衔”:“钢铁丹之队”, “项目”:[ { “id”:36, “标题”:“托尼·斯塔克” }, { “id”:37, “标题”:“完全正确” }, { “id”:38, “标题”:“马特·默多克” }, { “id”:39, “头衔”:“斯坦·李” } ] } ] } ] } ] 从上面的json中,我如何使用下划线.js仅过滤id为11=>{“id”:11}的特定嵌套对象 我需要的输出是:{
{
"id":11, "title":"San Jose", "items":[
{
"id":13, "title":"Jensen Chapman's Team", "items":[
{
"id":14, "title":"Jimmy John" }, {
"id":15, "title":"Daniel Mills" }, {
"id":16, "title":"Chris Boden" } ] } ] } “id”:11, “头衔”:“圣何塞”, “项目”:[
{
“id”:13, “头衔”:“詹森·查普曼团队”, “项目”:[
{
“id”:14, “标题”:“吉米·约翰” }, {
“id”:15, “标题”:“丹尼尔·米尔斯” }, {
“id”:16, “标题”:“克里斯·博登” } ] } ]
}

您可以使用递归算法在当前数组和嵌套数组中查找对象

var数据=[{“id”:1,“title”:“ASD总部”,“项目”:[{“id”:11,“title”:“San Jose”,“items”:[{“id”:13,“title”:“Jensen Chapman的团队”,“items”:[{“id”:14,“title”:“Jimmy John”},{“id”:15,“title”:“Daniel Mills”},{“id”:16,“title”:“Chris Boden”}]},{“id”:12,“title”:“Irvine”,“items”:[{“id”:23,”title:“Tracey Chapman的团队”,“items”:“{“id”:“圣耶酥”{“id”:25,“头衔”:“胖阿尔伯特”},{“id”:26,“头衔”:“康纳·麦克达维德”},{“id”:30,“头衔”:“圣地亚哥”,“物品”:[{“id”:31,“头衔”:“杜兰·杜兰的团队”,“物品”:[{“id”:32,“头衔”:“安伯林·平克顿”},{“id”:33,“头衔”:“托尼·梅加”},{“id”:34,“头衔”:“理查德·帕特里奇”{“id”:35,“头衔”:“埃利奥特·斯塔布勒”},{“id”:40《斯蒂利·丹的团队》,《物品》:[{“id”:36,“头衔”:“托尼·斯塔克”},{“id”:37,“头衔”:“全然正确”},{“id”:38,“头衔”:“马特·默多克”},{“id”:39,“头衔”:“斯坦·李”}];
console.log(查找(12,数据));
函数查找(id,[头,…尾]){
如果(!头)
返回null;
返回checkObj(id,head)|查找(id,tail);
}
功能检查obj(id,obj){
返回obj.id==id?obj:find(id,obj.items | |[]))

}
@VijayBaskaran:我把条件表达式搞混了。现在它已经修复,可以工作了,而且更清晰。