基于id的Javascript过滤器

基于id的Javascript过滤器,javascript,Javascript,我的er图中有三种实体。 省、区和市 关系为:城市属于地区,地区属于省 这是我的数据库表 地区 如果我推导出这样的关系 西部省份 科伦坡 Nugegoda Maharagama 甘帕哈 卡拉塔拉 中部省份 康迪 马泰尔 我将这些数据作为一个对象数组,如下所示 const regions=[ {id:1,地区名称:“西部省”,地区父区id:null}, {id:2,地区名称:“科伦坡”,地区名称:1}, {id:3,地区名称:“Gampaha”,地区名称:1}, {id:4,地区名称:

我的er图中有三种实体。

关系为:城市属于地区,地区属于省

这是我的数据库表 地区

如果我推导出这样的关系

西部省份

科伦坡

  Nugegoda
  Maharagama
甘帕哈

卡拉塔拉

中部省份

康迪

马泰尔

我将这些数据作为一个对象数组,如下所示

const regions=[
{id:1,地区名称:“西部省”,地区父区id:null},
{id:2,地区名称:“科伦坡”,地区名称:1},
{id:3,地区名称:“Gampaha”,地区名称:1},
{id:4,地区名称:“Kaluthara”,地区名称:1},
{id:5,地区名称:“Nugegoda”,地区名称:2},
{id:6,地区名称:“Maharagama”,地区名称:2},
{id:7,地区名称:“中央省”,地区父区id:null},
{id:8,地区名称:“Kandy”,地区名称:7},
{id:9,地区名称:“Mathale”,地区名称:7},
{id:10,地区名称:“theldeniya”,地区名称:8},
{id:11,地区名称:“penideniya”,地区名称:8}
]
console.log(regions.filter(e=>!e.region\u parent\u id))
尝试以下操作:

var parId=prompt(“输入区域父id:”);
常量区域=[
{id:1,地区名称:“西部省”,地区父区id:null},
{id:2,地区名称:“科伦坡”,地区名称:1},
{id:3,地区名称:“Gampaha”,地区名称:1},
{id:4,地区名称:“Kaluthara”,地区名称:1},
{id:5,地区名称:“Nugegoda”,地区名称:2},
{id:6,地区名称:“Maharagama”,地区名称:2},
{id:7,地区名称:“中央省”,地区父区id:null},
{id:8,地区名称:“Kandy”,地区名称:7},
{id:9,地区名称:“Mathale”,地区名称:7},
{id:10,地区名称:“theldeniya”,地区名称:8},
{id:11,地区名称:“penideniya”,地区名称:8}
]
功能归属(dis){
var getProvince=regions.find(e=>e.id==dis);
国际单项体育联合会(广东省){
console.log(“=============”+getProvince.region\u name+”=============”;
regions.map(c=>{if(c.region\u parent\u id===dis)console.log(c.region\u name+“”+c.id+“parent:(“+c.region\u parent\u id+”))
}
}
归属(parseInt(parId))请尝试以下操作:

var parId=prompt(“输入区域父id:”);
常量区域=[
{id:1,地区名称:“西部省”,地区父区id:null},
{id:2,地区名称:“科伦坡”,地区名称:1},
{id:3,地区名称:“Gampaha”,地区名称:1},
{id:4,地区名称:“Kaluthara”,地区名称:1},
{id:5,地区名称:“Nugegoda”,地区名称:2},
{id:6,地区名称:“Maharagama”,地区名称:2},
{id:7,地区名称:“中央省”,地区父区id:null},
{id:8,地区名称:“Kandy”,地区名称:7},
{id:9,地区名称:“Mathale”,地区名称:7},
{id:10,地区名称:“theldeniya”,地区名称:8},
{id:11,地区名称:“penideniya”,地区名称:8}
]
功能归属(dis){
var getProvince=regions.find(e=>e.id==dis);
国际单项体育联合会(广东省){
console.log(“=============”+getProvince.region\u name+”=============”;
regions.map(c=>{if(c.region\u parent\u id===dis)console.log(c.region\u name+“”+c.id+“parent:(“+c.region\u parent\u id+”))
}
}

归属(parseInt(parId))以下面的方式使用过滤器,您将获得所需的结果

const regions=[
{id:1,地区名称:“西部省”,地区父区id:null},
{id:2,地区名称:“科伦坡”,地区名称:1},
{id:3,地区名称:“Gampaha”,地区名称:1},
{id:4,地区名称:“Kaluthara”,地区名称:1},
{id:5,地区名称:“Nugegoda”,地区名称:2},
{id:6,地区名称:“Maharagama”,地区名称:2},
{id:7,地区名称:“中央省”,地区父区id:null},
{id:8,地区名称:“Kandy”,地区名称:7},
{id:9,地区名称:“Mathale”,地区名称:7},
{id:10,地区名称:“theldeniya”,地区名称:8},
{id:11,地区名称:“penideniya”,地区名称:8}
];
var province=regions.filter(e=>!e.region\u parent\u id);
省.forEach(p=>{
p、 district=regions.filter(e=>e.region\u parent\u id==p.id);
//如果您还希望在district对象中包含cities列表,请取消对以下代码段的注释。
//p、 district.forEach(d=>{
//d.city=regions.filter(e=>e.region\u parent\u id==d.id);
//});
var districtIds=p.district.map(d=>d.id);
p、 city=regions.filter(e=>districtIds.includes(e.region\u parent\u id));
});

console.log(省)以下面的方式使用过滤器,您将获得所需的结果

const regions=[
{id:1,地区名称:“西部省”,地区父区id:null},
{id:2,地区名称:“科伦坡”,地区名称:1},
{id:3,地区名称:“Gampaha”,地区名称:1},
{id:4,地区名称:“Kaluthara”,地区名称:1},
{id:5,地区名称:“Nugegoda”,地区名称:2},
{id:6,地区名称:“Maharagama”,地区名称:2},
{id:7,地区名称:“中央省”,地区父区id:null},
{id:8,地区名称:“Kandy”,地区名称:7},
{id:9,地区名称:“Mathale”,地区名称:7},
{id:10,地区名称:“theldeniya”,地区名称:8},
{id:11,地区名称:“penideniya”,地区名称:8}
];
var province=regions.filter(e=>!e.region\u parent\u id);
省.forEach(p=>{
p、 district=regions.filter(e=>e.region\u parent\u id==p.id);
//如果您还希望在district对象中包含cities列表,请取消对以下代码段的注释。
//p、 district.forEach(d=>{
//d.city=regions.filter(e=>e.region\u parent\u id==d.id);
//});
var districtIds=p.district.map(d=>d.id);
p、 city=regions.filter(e=>districtIds.includes(e.region\u parent\u id));
});
console.log(省)请尝试以下操作:

const regions = [
  { id: 1, region_name: "Western province", region_parent_id: null },
  { id: 2, region_name: "Colombo", region_parent_id: 1 },
  { id: 3, region_name: "Gampaha", region_parent_id: 1 },
  { id: 4, region_name: "Kaluthara", region_parent_id: 1 },
  { id: 5, region_name: "Nugegoda", region_parent_id: 2 },
  { id: 6, region_name: "Maharagama", region_parent_id: 2 },
  { id: 7, region_name: "Central province", region_parent_id: null },
  { id: 8, region_name: "Kandy", region_parent_id: 7 },
  { id: 9, region_name: "Mathale", region_parent_id: 7 },
  { id: 10, region_name: "theldeniya", region_parent_id: 8 },
  { id: 11, region_name: "penideniya", region_parent_id: 8 }
];

const provinces = regions.filter(region => !region.region_parent_id);
for (let i = 0; i < provinces.length; i++) {
  const currentProvince = provinces[i];
  // get districts for this now
  currentProvince.districts = regions.filter(region => region.region_parent_id === currentProvince.id);
  for (let j = 0; j < provinces[i].districts.length; j++) {
    const currentDistrict = provinces[i].districts[j];
    // get cities for the district
    currentDistrict.cities = regions.filter(region => region.region_parent_id === currentDistrict.id);
  }
}

console.log(provinces)
const regions=[
{id:1,地区名称:“西部省”,地区父区id:null},
{id:2,地区名称:“科伦坡”,地区名称:1},
{id:3,地区名称:“Gampaha”,地区名称:
Theldeniya
Penideniya
const regions = [
  { id: 1, region_name: "Western province", region_parent_id: null },
  { id: 2, region_name: "Colombo", region_parent_id: 1 },
  { id: 3, region_name: "Gampaha", region_parent_id: 1 },
  { id: 4, region_name: "Kaluthara", region_parent_id: 1 },
  { id: 5, region_name: "Nugegoda", region_parent_id: 2 },
  { id: 6, region_name: "Maharagama", region_parent_id: 2 },
  { id: 7, region_name: "Central province", region_parent_id: null },
  { id: 8, region_name: "Kandy", region_parent_id: 7 },
  { id: 9, region_name: "Mathale", region_parent_id: 7 },
  { id: 10, region_name: "theldeniya", region_parent_id: 8 },
  { id: 11, region_name: "penideniya", region_parent_id: 8 }
];

const provinces = regions.filter(region => !region.region_parent_id);
for (let i = 0; i < provinces.length; i++) {
  const currentProvince = provinces[i];
  // get districts for this now
  currentProvince.districts = regions.filter(region => region.region_parent_id === currentProvince.id);
  for (let j = 0; j < provinces[i].districts.length; j++) {
    const currentDistrict = provinces[i].districts[j];
    // get cities for the district
    currentDistrict.cities = regions.filter(region => region.region_parent_id === currentDistrict.id);
  }
}

console.log(provinces)