javascript - Filtering JSON by key -
is way in can filter json name , child node names , construct new output json.since long json have here
from above json want filter , construct below json:
{ "name": "age", "code": "age", "children": [{ "name": "female", "code": "age_female", "children": [{ "name": "female   under 5 years", "code": "q012027", "count": 242 }, { "name": "female  5 13 years", "code": "q012028", "count": 242 }, { "name": "female 14 17 years", "code": "q012030", "count": 242 }, { "name": "female 18 21 years", "code": "q012031", "count": 242 }, { "name": "single year", "code": "female_single_year", "children": [{ "name": "female single year female under 1 year", "code": "q012a27", "count": 242 }, { "name": "female single year female 1 year", "code": "q012b27", "count": 242 }, { "name": "female single year female 2 years", "code": "q012c27", "count": 242 }, { "name": "female single year female 3 years", "code": "q012d27", "count": 242 }, { "name": "female single year female 4 years", "code": "q012e27", "count": 242 }, { "name": "female single year female 5 years", "code": "q012a28", "count": 242 }, { "name": "female single year female 6 years", "code": "q012b28", "count": 242 }, { "name": "female single year female 7 years", "code": "q012c28", "count": 242 }, { "name": "female single year female 8 years", "code": "q012d28", "count": 242 }, { "name": "female single year female 9 years", "code": "q012e28", "count": 242 }, { "name": "female single year female 10 years", "code": "q012f28", "count": 242 }, { "name": "female single year female 11 years", "code": "q012g28", "count": 242 }, { "name": "female single year female 12 years", "code": "q012h28", "count": 242 }, { "name": "female single year female 13 years", "code": "q012i28", "count": 242 }, { "name": "female single year female 14 years", "code": "q012a30", "count": 242 }, { "name": "female single year female 15 years", "code": "q012b30", "count": 242 }, { "name": "female single year female 16 years", "code": "q012c30", "count": 242 }, { "name": "female single year female 17 years", "code": "q012d30", "count": 242 }, { "name": "female single year female 18 years", "code": "q012a31", "count": 242 }, { "name": "female single year female 19 years", "code": "q012b31", "count": 242 }, { "name": "female single year female 20 years", "code": "q012c31", "count": 242 }, { "name": "female single year female 21 years", "code": "q012d31", "count": 242 }] }, { "name": "female 22 24 years", "code": "q012033", "count": 242 }, { "name": "female 25 29 years", "code": "q012035", "count": 242 }, { "name": "female 30 34 years", "code": "q012036", "count": 242 }, { "name": "female 35 39 years", "code": "q012037", "count": 242 }, { "name": "female 40 44 years", "code": "q012038", "count": 242 }, { "name": "female 45 49 years", "code": "q012039", "count": 242 }, { "name": "female 50 54 years", "code": "q012040", "count": 242 }, { "name": "female 55 59 years", "code": "q012041", "count": 242 }, { "name": "female 60 64 years", "code": "q012042", "count": 242 }, { "name": "female 65 69 years", "code": "q012044", "count": 242 }, { "name": "female 70 74 years", "code": "q012046", "count": 242 }, { "name": "female 75 79 years", "code": "q012047", "count": 242 }, { "name": "female 80 84 years", "code": "q012048", "count": 242 }, { "name": "female 85 years plus", "code": "q012049", "count": 242 }, { "name": "female 18 years plus", "code": "q0120f_18p", "count": 242 }, { "name": "aggregate age female", "code": "q013b_3", "count": 242 }, { "name": "female average age", "code": "q013b_3av", "count": 242 }, { "name": "female median age", "code": "r013b_3md", "count": 242 }] }, { "name": "male", "code": "age_male", "children": [{ "name": "aggregate age male", "code": "q013b_2", "count": 242 }, { "name": "male   under 5 years", "code": "q012003", "count": 242 }, { "name": "male  5 13 years", "code": "q012004", }, { "count": 242 "name": "single year", "code": "male_single_year", "children": [{ "name": "male single year male under 1 year", "code": "q012a03", "count": 242 }, { "name": "male single year male 1 year", "code": "q012b03", "count": 242 }, { "name": "male single year male 2 years", "code": "q012c03", "count": 242 }, { "name": "male single year male 3 years", "code": "q012d03", "count": 242 }, { "name": "male single year male 4 years", "code": "q012e03", "count": 242 }, { "name": "male single year male 5 years", "code": "q012a04", "count": 242 }, { "name": "male single year male 6 years", "code": "q012b04", "count": 242 }, { "name": "male single year male 7 years", "code": "q012c04", "count": 242 }, { "name": "male single year male 8 years", "code": "q012d04", "count": 242 }, { "name": "male single year male 9 years", "code": "q012e04", "count": 242 }, { "name": "male single year male 10 years", "code": "q012f04", "count": 242 }, { "name": "male single year male 11 years", "code": "q012g04", "count": 242 }, { "name": "male single year male 12 years", "code": "q012h04", "count": 242 }, { "name": "male single year male 13 years", "code": "q012i04", "count": 242 }, { "name": "male single year male 14 years", "code": "q012a06", "count": 242 }, { "name": "male single year male 15 years", "code": "q012b06", "count": 242 }, { "name": "male single year male 16 years", "code": "q012c06", "count": 242 }, { "name": "male single year male 17 years", "code": "q012d06", "count": 242 }, { "name": "male single year male 18 years", "code": "q012a07", "count": 242 }, { "name": "male single year male 19 years", "code": "q012b07", "count": 242 }, { "name": "male single year male 20 years", "code": "q012c07", "count": 242 }, { "name": "male single year male 21 years", "code": "q012d07", "count": 242 }] }, { "name": "male 14 17 years", "code": "q012006", "count": 242 }, { "name": "male 18 21 years", "code": "q012007", "count": 242 }, { "name": "male 18 years plus", "code": "q0120m_18p", "count": 242 }, { "name": "male 22 24 years", "code": "q012009", "count": 242 }, { "name": "male 25 29 years", "code": "q012011", "count": 242 }, { "name": "male 30 34 years", "code": "q012012", "count": 242 }, { "name": "male 35 39 years", "code": "q012013", "count": 242 }, { "name": "male 40 44 years", "code": "q012014", "count": 242 }, { "name": "male 45 49 years", "code": "q012015", "count": 242 }, { "name": "male 50 54 years", "code": "q012016", "count": 242 }, { "name": "male 55 59 years", "code": "q012017", "count": 242 }, { "name": "male 60 64 years", "code": "q012018", "count": 242 }, { "name": "male 65 69 years", "code": "q012020", "count": 242 }, { "name": "male 70 74 years", "code": "q012022", "count": 242 }, { "name": "male 75 79 years", "code": "q012023", "count": 242 }, { "name": "male 80 84 years", "code": "q012024", "count": 242 }, { "name": "male 85 years plus", "code": "q012025", "count": 242 }, { "name": "male average age", "code": "q013b_2av", "count": 242 }, { "name": "male median age", "code": "q013b_2md", "count": 242 }] }] }] }
you take following:
result = data.children .filter(o => o.name === 'age') .map(o => object.assign( {}, o, { children: o.children.filter(p => ['female', 'male'].includes(p.name)) } ));
Comments
Post a Comment