Javascript ';具有嵌套对象的对象';使用ES6箭头函数
如何根据'id'或'subdivisions.id'过滤下面这样的对象数组 ps:ids是唯一的,您无法找到object.id==object.subdivisions[n].idJavascript ';具有嵌套对象的对象';使用ES6箭头函数,javascript,ecmascript-6,Javascript,Ecmascript 6,如何根据'id'或'subdivisions.id'过滤下面这样的对象数组 ps:ids是唯一的,您无法找到object.id==object.subdivisions[n].id { "id": "1", "name": "South East", "subdivisions": [ { "id": "2", "name": "Berkshire" }, { "id": "3", "name": "Buckin
{
"id": "1",
"name": "South East",
"subdivisions": [
{
"id": "2",
"name": "Berkshire"
},
{
"id": "3",
"name": "Buckinghamshire"
},
{
"id": "4",
"name": "East Sussex"
},
{
"id": "5",
"name": "Hampshire"
},
{
"id": "6",
"name": "Isle of Wight"
},
{
"id": "7",
"name": "Kent"
},
{
"id": "8",
"name": "Oxfordshire"
},
{
"id": "9",
"name": "Surrey"
},
{
"id": "10",
"name": "West Sussex"
}
]
}
得到一个简单的对象,如下所示:
{
"id": "10",
"name": "West Sussex"
}
编辑
以下是完整阵列:
[
{
"id": "1",
"name": "South East",
"subdivisions": [
{
"id": "2",
"name": "Berkshire",
"__typename": "Region"
},
{
"id": "3",
"name": "Buckinghamshire",
"__typename": "Region"
},
{
"id": "4",
"name": "East Sussex",
"__typename": "Region"
},
{
"id": "5",
"name": "Hampshire",
"__typename": "Region"
},
{
"id": "6",
"name": "Isle of Wight",
"__typename": "Region"
},
{
"id": "7",
"name": "Kent",
"__typename": "Region"
},
{
"id": "8",
"name": "Oxfordshire",
"__typename": "Region"
},
{
"id": "9",
"name": "Surrey",
"__typename": "Region"
},
{
"id": "10",
"name": "West Sussex",
"__typename": "Region"
}
],
"__typename": "Region"
},
{
"id": "11",
"name": "London",
"subdivisions": [
{
"id": "12",
"name": "City of London",
"__typename": "Region"
},
{
"id": "13",
"name": "City of Westminster",
"__typename": "Region"
},
{
"id": "14",
"name": "Kensington and Chelsea",
"__typename": "Region"
},
{
"id": "15",
"name": "Hammersmith and Fulham",
"__typename": "Region"
},
{
"id": "16",
"name": "Wandsworth",
"__typename": "Region"
},
{
"id": "17",
"name": "Lambeth",
"__typename": "Region"
},
{
"id": "18",
"name": "Southwark",
"__typename": "Region"
},
{
"id": "19",
"name": "Tower Hamlets",
"__typename": "Region"
},
{
"id": "20",
"name": "Hackney",
"__typename": "Region"
},
{
"id": "21",
"name": "Islington",
"__typename": "Region"
},
{
"id": "22",
"name": "Camden",
"__typename": "Region"
},
{
"id": "23",
"name": "Brent",
"__typename": "Region"
},
{
"id": "24",
"name": "Ealing",
"__typename": "Region"
},
{
"id": "25",
"name": "Hounslow",
"__typename": "Region"
},
{
"id": "26",
"name": "Richmond",
"__typename": "Region"
},
{
"id": "27",
"name": "Kingston",
"__typename": "Region"
},
{
"id": "28",
"name": "Merton",
"__typename": "Region"
},
{
"id": "29",
"name": "Sutton",
"__typename": "Region"
},
{
"id": "30",
"name": "Croydon",
"__typename": "Region"
},
{
"id": "31",
"name": "Bromley",
"__typename": "Region"
},
{
"id": "32",
"name": "Lewisham",
"__typename": "Region"
},
{
"id": "33",
"name": "Greenwich",
"__typename": "Region"
},
{
"id": "34",
"name": "Bexley",
"__typename": "Region"
},
{
"id": "35",
"name": "Havering",
"__typename": "Region"
},
{
"id": "36",
"name": "Barking and Dagenham",
"__typename": "Region"
},
{
"id": "37",
"name": "Redbridge",
"__typename": "Region"
},
{
"id": "38",
"name": "Newham",
"__typename": "Region"
},
{
"id": "39",
"name": "Waltham Forest",
"__typename": "Region"
},
{
"id": "40",
"name": "Haringey",
"__typename": "Region"
},
{
"id": "41",
"name": "Enfield",
"__typename": "Region"
},
{
"id": "42",
"name": "Barnet",
"__typename": "Region"
},
{
"id": "43",
"name": "Harrow",
"__typename": "Region"
},
{
"id": "44",
"name": "Hillingdon",
"__typename": "Region"
}
],
"__typename": "Region"
},
{
"id": "45",
"name": "North West England",
"subdivisions": [
{
"id": "46",
"name": "Cheshire",
"__typename": "Region"
},
{
"id": "47",
"name": "Cumbria",
"__typename": "Region"
},
{
"id": "48",
"name": "Greater Manchester",
"__typename": "Region"
},
{
"id": "49",
"name": "Lancashire",
"__typename": "Region"
},
{
"id": "50",
"name": "Merseyside",
"__typename": "Region"
}
],
"__typename": "Region"
},
{
"id": "51",
"name": "East of England",
"subdivisions": [
{
"id": "52",
"name": "East Anglia",
"__typename": "Region"
},
{
"id": "53",
"name": "Bedfordshire and Hertfordshire",
"__typename": "Region"
},
{
"id": "54",
"name": "Essex",
"__typename": "Region"
}
],
"__typename": "Region"
},
{
"id": "55",
"name": "West Midlands",
"subdivisions": [
{
"id": "56",
"name": "Herefordshire, Worcestershire and Warwickshire",
"__typename": "Region"
},
{
"id": "57",
"name": "Shropshire and Staffordshire",
"__typename": "Region"
},
{
"id": "58",
"name": "West Midlands",
"__typename": "Region"
}
],
"__typename": "Region"
},
{
"id": "59",
"name": "South West England",
"subdivisions": [
{
"id": "60",
"name": "Gloucestershire, Wiltshire and Bristol/Bath area",
"__typename": "Region"
},
{
"id": "61",
"name": "Dorset and Somerset",
"__typename": "Region"
},
{
"id": "62",
"name": "Cornwall and Isles of Scilly",
"__typename": "Region"
},
{
"id": "63",
"name": "Devon",
"__typename": "Region"
}
],
"__typename": "Region"
},
{
"id": "64",
"name": "Yorkshire and the Humber",
"subdivisions": [
{
"id": "65",
"name": "East Riding and North Lincolnshire",
"__typename": "Region"
},
{
"id": "66",
"name": "North Yorkshire",
"__typename": "Region"
},
{
"id": "67",
"name": "South Yorkshire",
"__typename": "Region"
},
{
"id": "68",
"name": "West Yorkshire",
"__typename": "Region"
}
],
"__typename": "Region"
},
{
"id": "69",
"name": "East Midlands",
"subdivisions": [
{
"id": "70",
"name": "Derbyshire and Nottinghamshire",
"__typename": "Region"
},
{
"id": "71",
"name": "Leicestershire, Rutland and Northamptonshire",
"__typename": "Region"
},
{
"id": "72",
"name": "Lincolnshire",
"__typename": "Region"
}
],
"__typename": "Region"
},
{
"id": "73",
"name": "North East England",
"subdivisions": [
{
"id": "74",
"name": "Tees Valley and County Durham",
"__typename": "Region"
},
{
"id": "75",
"name": "Northumberland and Tyne and Wear",
"__typename": "Region"
}
],
"__typename": "Region"
}
]
你可以用它
要在子分区外部或内部进行搜索,可以使用以下命令
函数查找(数据,id){
var result=data.find(o=>o.id==id);
如果(!结果){
一些(o=>result=o.subsections.find(s=>s.id==id));
}
返回结果;
}
var数据=[{id:“1”,名称:“东南”,细分:[{id:“2”,名称:“伯克希尔”,类型名称:“地区”},{id:“3”,名称:“白金汉郡”,类型名称:“地区”},{id:“4”,名称:“东苏塞克斯”,类型名称:“地区”},{id:“5”,名称:“汉普郡”,类型名称:“地区”},{id:“6”,名称:“怀特岛”,类型名称:“地区”},{id:“7”,名字:“肯特”,名字:“地区”},{id:“8”,名字:“牛津郡”,名字:“地区”},{id:“9”,名字:“萨里”,名字:“地区”},{id:“10”,名字:“西苏塞克斯”,名字:“地区”},{id:“11”,名字:“伦敦”,分区:[id:“12”,名字:“伦敦市”,名字:“地区”},{id:“13”,姓名:“威斯敏斯特市”,“地区”},{id:“14”,姓名:“肯辛顿和切尔西”,“地区”},{id:“15”,姓名:“哈默史密斯和富勒姆”,“地区”},{id:“16”,姓名:“旺德斯沃思”,“地区”},{id:“17”,姓名:“兰贝思”,“地区”},{id:“18”,姓名:“南华克”,“地区”“地区”}、{id:“19”、姓名:“塔楼村庄”}、{id:“20”、姓名:“哈克尼”、{id:“地区”}、{id:“21”、姓名:“伊斯林顿”、{id:“地区”}、{id:“22”、姓名:“卡姆登”、{id:“地区”}、{id:“23”、姓名:“布伦特”、{id:“地区”}、{id:“24”、姓名:“伊林”、{UU类型名称:“地区”}、{id:“25,姓名:“Hounslow”,姓名:“Region”},{id:“26”,姓名:“Richmond”,姓名:“Region”},{id:“27”,姓名:“Kingston”,姓名:“Region”},{id:“28”,姓名:“Merton”,姓名:“Region”},{id:“29”,姓名:“Sutton”,姓名:“Region”},{id:“30”,姓名:“Croydon”,姓名:“Region”},{id:“31”,姓名:“Bromley”,{id:“区域”},{id:“38”,名称:“纽厄姆”,{id:“区域”},{id:“39”,名称:“沃尔瑟姆森林”,{id:“区域”},{id:“40”,名称:“哈林盖”,{id:“区域”},{id:“41”,名称:“恩菲尔德”,{UU类型名称:“区域”},{id:“42”,名称:“巴内特”,{id:“43”,名称:“哈罗”,{UU类型名称:“区域”},{id:“44”,姓名:“希尔林顿”,“地区”},{id:“45”,姓名:“英格兰西北部”,分部:[{id:“46”,姓名:“柴郡”,“地区”},{id:“47”,姓名:“坎布里亚”,“地区”},{id:“48”,姓名:“大曼彻斯特”,“地区”},{id:“49”,姓名:“兰开夏郡”,{id:“50”,姓名:“默西塞德”,“地区”},{id:“51”,姓名:“英格兰东部”,分部:[{id:“52”,姓名:“东安格利亚”,“地区”},{id:“53”,姓名:“贝德福德郡和赫特福德郡”,“地区”},{id:“54”,姓名:“埃塞克斯”,“地区”}],{id:“55”,名称:“西米德兰兹”,分部:[{id:“56”,名称:“赫里福德郡、伍斯特郡和沃里克郡”,{id:“地区”},{id:“57”,名称:“什罗普郡和斯塔福德郡”,{id:“58”,名称:“西米德兰兹郡”,{U类型名称:“地区”},{id:“59”,名称:“英格兰西南部”,分区:[id:“60”,名称:“格洛斯特郡、威尔特郡和布里斯托尔/巴斯地区”,[id:“61”,名称:“多塞特和萨默塞特”,[id:“地区”],[id:“62”,名称:“康沃尔和西利群岛”,[id:“63”,名称:“德文郡”,[id:“地区”],[地区”,{id:“64”,名称:“约克郡和亨伯”,细分:[id:“65”,名称:“东骑马和北林肯郡”,{id:“66”,名称:“北约克郡”,{id:“67”,名称:“南约克郡”,{U类型名称:“地区”},{id:“68”,名称:“西约克郡”,{U类型名称:“地区”},{U类型名称:“地区”},{id:“69”,名称:“东米德兰”,分区:[{id:“70”,名称:“德比郡和诺丁汉郡”,“地区”},{id:“71”,名称:“莱斯特郡、拉特兰和北安普敦郡”,{id:“72”,名称:“林肯郡”,{UU类型名称:“地区”},{id:“73”,名称:“英格兰东北部”,分区:[{id:“74”,名称:“蒂斯山谷和达勒姆县”,{id:“75”,名称:“诺森伯兰和泰恩和威尔”,{U类型名称:“区域”}],{U类型名称:“区域”}];
log(查找(数据'foo');//未定义
log(查找(数据,'66');//来自细分的项
log(查找(数据,'69');//外部数组中的项
.as控制台包装{max height:100%!important;top:0;}
您可以使用它
要在子分区外部或内部进行搜索,可以使用以下命令
函数查找(数据,id){
var result=data.find(o=>o.id==id);
如果(!结果){
一些(o=>result=o.subsections.find(s=>s.id==id));
}
返回结果;
}
var数据=
let result = object.subdivisions.find(sub => sub.id === id);