Javascript filter based on id

Multi tool use
I have three kind of entities in my er diagram.
Province, District and City.
Relationship is City belongs to District and District belongs to the Province.
this is my database table
region.
id | region_name | region_parent_id
1 | Western province | null
2 | Colombo | 1
3 | Gampaha | 1
4 | Kaluthara | 1
5 | Nugegoda | 2
6 | Maharagama | 2
7 | Central province | null
8 | Kandy | 7
9 | Mathale | 7
10 | theldeniya | 8
11 | penideniya | 8
If I derive the relationships I would be like this,
Western province
Colombo
Nugegoda
Maharagama
Gampaha
Kaluthara
Central province
Kandy
Theldeniya
Penideniya
Mathale
I get this data as an array of objects like this,
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}
]
console.log(regions.filter(e=> !e.region_parent_id ))
I could easily get the provinces like this.
console.log(regions.filter(e=> !e.region_parent_id ))
But how could I get districts list and the cities list?
Any help!
Thanks in advanced! =)
javascript
add a comment |
I have three kind of entities in my er diagram.
Province, District and City.
Relationship is City belongs to District and District belongs to the Province.
this is my database table
region.
id | region_name | region_parent_id
1 | Western province | null
2 | Colombo | 1
3 | Gampaha | 1
4 | Kaluthara | 1
5 | Nugegoda | 2
6 | Maharagama | 2
7 | Central province | null
8 | Kandy | 7
9 | Mathale | 7
10 | theldeniya | 8
11 | penideniya | 8
If I derive the relationships I would be like this,
Western province
Colombo
Nugegoda
Maharagama
Gampaha
Kaluthara
Central province
Kandy
Theldeniya
Penideniya
Mathale
I get this data as an array of objects like this,
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}
]
console.log(regions.filter(e=> !e.region_parent_id ))
I could easily get the provinces like this.
console.log(regions.filter(e=> !e.region_parent_id ))
But how could I get districts list and the cities list?
Any help!
Thanks in advanced! =)
javascript
add a comment |
I have three kind of entities in my er diagram.
Province, District and City.
Relationship is City belongs to District and District belongs to the Province.
this is my database table
region.
id | region_name | region_parent_id
1 | Western province | null
2 | Colombo | 1
3 | Gampaha | 1
4 | Kaluthara | 1
5 | Nugegoda | 2
6 | Maharagama | 2
7 | Central province | null
8 | Kandy | 7
9 | Mathale | 7
10 | theldeniya | 8
11 | penideniya | 8
If I derive the relationships I would be like this,
Western province
Colombo
Nugegoda
Maharagama
Gampaha
Kaluthara
Central province
Kandy
Theldeniya
Penideniya
Mathale
I get this data as an array of objects like this,
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}
]
console.log(regions.filter(e=> !e.region_parent_id ))
I could easily get the provinces like this.
console.log(regions.filter(e=> !e.region_parent_id ))
But how could I get districts list and the cities list?
Any help!
Thanks in advanced! =)
javascript
I have three kind of entities in my er diagram.
Province, District and City.
Relationship is City belongs to District and District belongs to the Province.
this is my database table
region.
id | region_name | region_parent_id
1 | Western province | null
2 | Colombo | 1
3 | Gampaha | 1
4 | Kaluthara | 1
5 | Nugegoda | 2
6 | Maharagama | 2
7 | Central province | null
8 | Kandy | 7
9 | Mathale | 7
10 | theldeniya | 8
11 | penideniya | 8
If I derive the relationships I would be like this,
Western province
Colombo
Nugegoda
Maharagama
Gampaha
Kaluthara
Central province
Kandy
Theldeniya
Penideniya
Mathale
I get this data as an array of objects like this,
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}
]
console.log(regions.filter(e=> !e.region_parent_id ))
I could easily get the provinces like this.
console.log(regions.filter(e=> !e.region_parent_id ))
But how could I get districts list and the cities list?
Any help!
Thanks in advanced! =)
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}
]
console.log(regions.filter(e=> !e.region_parent_id ))
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}
]
console.log(regions.filter(e=> !e.region_parent_id ))
javascript
javascript
edited Jan 3 at 5:41


Ehsan
9,89531232
9,89531232
asked Jan 3 at 3:52


Pathum SamararathnaPathum Samararathna
939930
939930
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
Try This:
var parId = prompt("Enter region parent id : " ) ;
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}
]
function belong(dis) {
var getProvince = regions.find( e => e.id === dis ) ;
if ( getProvince ) {
console.log("==========" + getProvince.region_name + "==========" ) ;
regions.map( c => {if (c.region_parent_id === dis ) console.log(c.region_name + " " + c.id +" Parent:(" + c.region_parent_id +")") } )
}
}
belong( parseInt(parId) );
This works! =) and how could I get the cities which are belongs to a city. If I pass district id 2 how do I get the cities belongs to that district?
– Pathum Samararathna
Jan 3 at 4:31
@Ehsan, it seems like not that tough question, you should learn how to solve problem instead of ask for code. I think you can use Map data structure solve this problem.
– 0day
Jan 3 at 4:37
@PathumSamararathna, see updated post.
– Ehsan
Jan 3 at 5:12
add a comment |
Use filter in below way you will get your desired result.
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}
];
var province = regions.filter(e => !e.region_parent_id);
province.forEach(p => {
p.district = regions.filter(e => e.region_parent_id == p.id);
// Uncomment following snippet if you want to have cities list inside district object also.
//p.district.forEach(d => {
// d.city = regions.filter(e => e.region_parent_id == d.id);
//});
var districtIds = p.district.map(d => d.id);
p.city = regions.filter(e => districtIds.includes(e.region_parent_id));
});
console.log(province);
add a comment |
Try this:
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)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54016124%2fjavascript-filter-based-on-id%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
Try This:
var parId = prompt("Enter region parent id : " ) ;
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}
]
function belong(dis) {
var getProvince = regions.find( e => e.id === dis ) ;
if ( getProvince ) {
console.log("==========" + getProvince.region_name + "==========" ) ;
regions.map( c => {if (c.region_parent_id === dis ) console.log(c.region_name + " " + c.id +" Parent:(" + c.region_parent_id +")") } )
}
}
belong( parseInt(parId) );
This works! =) and how could I get the cities which are belongs to a city. If I pass district id 2 how do I get the cities belongs to that district?
– Pathum Samararathna
Jan 3 at 4:31
@Ehsan, it seems like not that tough question, you should learn how to solve problem instead of ask for code. I think you can use Map data structure solve this problem.
– 0day
Jan 3 at 4:37
@PathumSamararathna, see updated post.
– Ehsan
Jan 3 at 5:12
add a comment |
Try This:
var parId = prompt("Enter region parent id : " ) ;
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}
]
function belong(dis) {
var getProvince = regions.find( e => e.id === dis ) ;
if ( getProvince ) {
console.log("==========" + getProvince.region_name + "==========" ) ;
regions.map( c => {if (c.region_parent_id === dis ) console.log(c.region_name + " " + c.id +" Parent:(" + c.region_parent_id +")") } )
}
}
belong( parseInt(parId) );
This works! =) and how could I get the cities which are belongs to a city. If I pass district id 2 how do I get the cities belongs to that district?
– Pathum Samararathna
Jan 3 at 4:31
@Ehsan, it seems like not that tough question, you should learn how to solve problem instead of ask for code. I think you can use Map data structure solve this problem.
– 0day
Jan 3 at 4:37
@PathumSamararathna, see updated post.
– Ehsan
Jan 3 at 5:12
add a comment |
Try This:
var parId = prompt("Enter region parent id : " ) ;
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}
]
function belong(dis) {
var getProvince = regions.find( e => e.id === dis ) ;
if ( getProvince ) {
console.log("==========" + getProvince.region_name + "==========" ) ;
regions.map( c => {if (c.region_parent_id === dis ) console.log(c.region_name + " " + c.id +" Parent:(" + c.region_parent_id +")") } )
}
}
belong( parseInt(parId) );
Try This:
var parId = prompt("Enter region parent id : " ) ;
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}
]
function belong(dis) {
var getProvince = regions.find( e => e.id === dis ) ;
if ( getProvince ) {
console.log("==========" + getProvince.region_name + "==========" ) ;
regions.map( c => {if (c.region_parent_id === dis ) console.log(c.region_name + " " + c.id +" Parent:(" + c.region_parent_id +")") } )
}
}
belong( parseInt(parId) );
var parId = prompt("Enter region parent id : " ) ;
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}
]
function belong(dis) {
var getProvince = regions.find( e => e.id === dis ) ;
if ( getProvince ) {
console.log("==========" + getProvince.region_name + "==========" ) ;
regions.map( c => {if (c.region_parent_id === dis ) console.log(c.region_name + " " + c.id +" Parent:(" + c.region_parent_id +")") } )
}
}
belong( parseInt(parId) );
var parId = prompt("Enter region parent id : " ) ;
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}
]
function belong(dis) {
var getProvince = regions.find( e => e.id === dis ) ;
if ( getProvince ) {
console.log("==========" + getProvince.region_name + "==========" ) ;
regions.map( c => {if (c.region_parent_id === dis ) console.log(c.region_name + " " + c.id +" Parent:(" + c.region_parent_id +")") } )
}
}
belong( parseInt(parId) );
edited Jan 3 at 7:23
answered Jan 3 at 4:27


EhsanEhsan
9,89531232
9,89531232
This works! =) and how could I get the cities which are belongs to a city. If I pass district id 2 how do I get the cities belongs to that district?
– Pathum Samararathna
Jan 3 at 4:31
@Ehsan, it seems like not that tough question, you should learn how to solve problem instead of ask for code. I think you can use Map data structure solve this problem.
– 0day
Jan 3 at 4:37
@PathumSamararathna, see updated post.
– Ehsan
Jan 3 at 5:12
add a comment |
This works! =) and how could I get the cities which are belongs to a city. If I pass district id 2 how do I get the cities belongs to that district?
– Pathum Samararathna
Jan 3 at 4:31
@Ehsan, it seems like not that tough question, you should learn how to solve problem instead of ask for code. I think you can use Map data structure solve this problem.
– 0day
Jan 3 at 4:37
@PathumSamararathna, see updated post.
– Ehsan
Jan 3 at 5:12
This works! =) and how could I get the cities which are belongs to a city. If I pass district id 2 how do I get the cities belongs to that district?
– Pathum Samararathna
Jan 3 at 4:31
This works! =) and how could I get the cities which are belongs to a city. If I pass district id 2 how do I get the cities belongs to that district?
– Pathum Samararathna
Jan 3 at 4:31
@Ehsan, it seems like not that tough question, you should learn how to solve problem instead of ask for code. I think you can use Map data structure solve this problem.
– 0day
Jan 3 at 4:37
@Ehsan, it seems like not that tough question, you should learn how to solve problem instead of ask for code. I think you can use Map data structure solve this problem.
– 0day
Jan 3 at 4:37
@PathumSamararathna, see updated post.
– Ehsan
Jan 3 at 5:12
@PathumSamararathna, see updated post.
– Ehsan
Jan 3 at 5:12
add a comment |
Use filter in below way you will get your desired result.
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}
];
var province = regions.filter(e => !e.region_parent_id);
province.forEach(p => {
p.district = regions.filter(e => e.region_parent_id == p.id);
// Uncomment following snippet if you want to have cities list inside district object also.
//p.district.forEach(d => {
// d.city = regions.filter(e => e.region_parent_id == d.id);
//});
var districtIds = p.district.map(d => d.id);
p.city = regions.filter(e => districtIds.includes(e.region_parent_id));
});
console.log(province);
add a comment |
Use filter in below way you will get your desired result.
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}
];
var province = regions.filter(e => !e.region_parent_id);
province.forEach(p => {
p.district = regions.filter(e => e.region_parent_id == p.id);
// Uncomment following snippet if you want to have cities list inside district object also.
//p.district.forEach(d => {
// d.city = regions.filter(e => e.region_parent_id == d.id);
//});
var districtIds = p.district.map(d => d.id);
p.city = regions.filter(e => districtIds.includes(e.region_parent_id));
});
console.log(province);
add a comment |
Use filter in below way you will get your desired result.
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}
];
var province = regions.filter(e => !e.region_parent_id);
province.forEach(p => {
p.district = regions.filter(e => e.region_parent_id == p.id);
// Uncomment following snippet if you want to have cities list inside district object also.
//p.district.forEach(d => {
// d.city = regions.filter(e => e.region_parent_id == d.id);
//});
var districtIds = p.district.map(d => d.id);
p.city = regions.filter(e => districtIds.includes(e.region_parent_id));
});
console.log(province);
Use filter in below way you will get your desired result.
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}
];
var province = regions.filter(e => !e.region_parent_id);
province.forEach(p => {
p.district = regions.filter(e => e.region_parent_id == p.id);
// Uncomment following snippet if you want to have cities list inside district object also.
//p.district.forEach(d => {
// d.city = regions.filter(e => e.region_parent_id == d.id);
//});
var districtIds = p.district.map(d => d.id);
p.city = regions.filter(e => districtIds.includes(e.region_parent_id));
});
console.log(province);
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}
];
var province = regions.filter(e => !e.region_parent_id);
province.forEach(p => {
p.district = regions.filter(e => e.region_parent_id == p.id);
// Uncomment following snippet if you want to have cities list inside district object also.
//p.district.forEach(d => {
// d.city = regions.filter(e => e.region_parent_id == d.id);
//});
var districtIds = p.district.map(d => d.id);
p.city = regions.filter(e => districtIds.includes(e.region_parent_id));
});
console.log(province);
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}
];
var province = regions.filter(e => !e.region_parent_id);
province.forEach(p => {
p.district = regions.filter(e => e.region_parent_id == p.id);
// Uncomment following snippet if you want to have cities list inside district object also.
//p.district.forEach(d => {
// d.city = regions.filter(e => e.region_parent_id == d.id);
//});
var districtIds = p.district.map(d => d.id);
p.city = regions.filter(e => districtIds.includes(e.region_parent_id));
});
console.log(province);
edited Jan 3 at 5:32
answered Jan 3 at 5:27


KaranKaran
3,3912525
3,3912525
add a comment |
add a comment |
Try this:
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)
add a comment |
Try this:
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)
add a comment |
Try this:
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)
Try this:
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)
answered Jan 3 at 5:37
Muhammad ZaibMuhammad Zaib
1417
1417
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54016124%2fjavascript-filter-based-on-id%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
0TJkiIlKp