简体   繁体   中英

Filtering through array with values from another array

I have an array in which I would like to iterate and filter out based on keys from another array.I need to iterate through the first array and remove that item if the code matches from the second array.I know I should be using array filter but I am not able to get on how to pass the second array as a filter.

 var arr =[ [ { "name": "SEASONAL_LYQ1", "code": "SEASONAL_LYQ1", "parent": "SEASONAL_POP", "value": 0, "children": [] }, { "name": "SEASONAL_LYQ2", "code": "SEASONAL_LYQ2", "parent": "SEASONAL_POP", "value": 19, "children": [] }, { "name": "SEASONAL_LYQ3", "code": "SEASONAL_LYQ3", "parent": "SEASONAL_POP", "value": 40, "children": [] }, { "name": "SEASONAL_LYQ4", "code": "SEASONAL_LYQ4", "parent": "SEASONAL_POP", "value": 22, "children": [] }, { "name": "SEASONAL_CYQ1", "code": "SEASONAL_CYQ1", "parent": "SEASONAL_POP", "value": 0, "children": [] }, { "name": "SEASONAL_CYQ2", "code": "SEASONAL_CYQ2", "parent": "SEASONAL_POP", "value": 20, "children": [] }, { "name": "SEASONAL_CYQ3", "code": "SEASONAL_CYQ3", "parent": "SEASONAL_POP", "value": 40, "children": [] }, { "name": "SEASONAL_CYQ4", "code": "SEASONAL_CYQ4", "parent": "SEASONAL_POP", "value": 24, "children": [] } ], [ { "name": "Total Educated", "code": "Q035001", "parent": "EDU_ATTAINMENT", "value": "9891", "children": [] }, { "name": "Grade  Less than 9", "code": "Q035003", "parent": "EDU_ATTAINMENT", "value": "514", "children": [] }, { "name": "Grade 9 to 12", "code": "Q035007", "parent": "EDU_ATTAINMENT", "value": "444", "children": [] }, { "name": "High School", "code": "Q035011", "parent": "EDU_ATTAINMENT", "value": "1269", "children": [] }, { "name": "Some College", "code": "Q035012", "parent": "EDU_ATTAINMENT", "value": "2001", "children": [] }, { "name": "College Degree -  Associate's", "code": "Q035014", "parent": "EDU_ATTAINMENT", "value": "400", "children": [] }, { "name": "College Degree -  Bachelor's", "code": "Q035015", "parent": "EDU_ATTAINMENT", "value": "3018", "children": [] }, { "name": "College Degree -  Master's", "code": "Q035016", "parent": "EDU_ATTAINMENT", "value": "1706", "children": [] }, { "name": "College - Professional", "code": "Q035017", "parent": "EDU_ATTAINMENT", "value": "315", "children": [] }, { "name": "College Degree - Doctorate", "code": "Q035018", "parent": "EDU_ATTAINMENT", "value": "224", "children": [] }, { "name": "Enrollments (Total Population)", "code": "EDU_Enrollments", "parent": "EDU_ATTAINMENT", "children": [ { "name": "Nursery school/Preschool", "code": "Q036003", "parent": "EDU_Enrollments", "value": "330", "children": [] }, { "name": "Kindergarten/Elementary school", "code": "Q036006", "parent": "EDU_Enrollments", "value": "1158", "children": [] }, { "name": "High School", "code": "Q036015", "parent": "EDU_Enrollments", "value": "636", "children": [] }, { "name": "College/Graduate /Professional school", "code": "Q036018", "parent": "EDU_Enrollments", "value": "1715", "children": [] }, { "name": "Not Enrolled", "code": "Q036024", "parent": "EDU_Enrollments", "value": "10324", "children": [] } ] }, { "name": "Percents", "code": "PCT_EDU_ATTAINMENT", "parent": "EDU_ATTAINMENT", "children": [ { "name": "% Grade  Less than 9", "code": "XQ035003", "parent": "PCT_EDU_ATTAINMENT", "value": "5.197", "children": [] }, { "name": "% Grade 9 to 12", "code": "XQ035007", "parent": "PCT_EDU_ATTAINMENT", "value": "4.4937", "children": [] }, { "name": "% High school", "code": "XQ035011", "parent": "PCT_EDU_ATTAINMENT", "value": "12.8274", "children": [] }, { "name": "% Some college", "code": "XQ035012", "parent": "PCT_EDU_ATTAINMENT", "value": "20.2347", "children": [] }, { "name": "% College - Associate", "code": "XQ035014", "parent": "PCT_EDU_ATTAINMENT", "value": "4.0479", "children": [] }, { "name": "% College - Bachelors", "code": "XQ035015", "parent": "PCT_EDU_ATTAINMENT", "value": "30.509", "children": [] }, { "name": "% College - Masters", "code": "XQ035016", "parent": "PCT_EDU_ATTAINMENT", "value": "17.2467", "children": [] }, { "name": "% College - Professional", "code": "XQ035017", "parent": "PCT_EDU_ATTAINMENT", "value": "3.1824", "children": [] }, { "name": "% College - Doctorate", "code": "XQ035018", "parent": "PCT_EDU_ATTAINMENT", "value": "2.2612", "children": [] } ] } ], [ { "name": "1 Person HHs", "code": "Q014010", "parent": "HH_by_size", "value": "2395", "children": [] }, { "name": "2 Person HHs", "code": "Q014011", "parent": "HH_by_size", "value": "2140", "children": [] }, { "name": "3 Person HHs", "code": "Q014012", "parent": "HH_by_size", "value": "878", "children": [] }, { "name": "4 Person HHs", "code": "Q014013", "parent": "HH_by_size", "value": "701", "children": [] }, { "name": "5 Person HHs", "code": "Q014014", "parent": "HH_by_size", "value": "247", "children": [] }, { "name": "6 Person HHs", "code": "Q014015", "parent": "HH_by_size", "value": "68", "children": [] }, { "name": "7+ Person HHs", "code": "Q014016", "parent": "HH_by_size", "value": "54", "children": [] }, { "name": "Persons Per HH", "code": "Q017001", "parent": "HH_by_size", "value": "2", "children": [] } ], [ { "name": "Occ Managerial Executive", "code": "Q050004", "parent": "EMP_16P_WHITE_COL", "value": "1748", "children": [] }, { "name": "Occ Prof Specialty", "code": "Q050010", "parent": "EMP_16P_WHITE_COL", "value": "2372", "children": [] }, { "name": "Occ Healthcare Support", "code": "Q050024", "parent": "EMP_16P_WHITE_COL", "value": "91", "children": [] }, { "name": "Occ Sales", "code": "Q050032", "parent": "EMP_16P_WHITE_COL", "value": "1323", "children": [] }, { "name": "Occ Office Admin", "code": "Q050033", "parent": "EMP_16P_WHITE_COL", "value": "623", "children": [] } ], [ { "name": "Occ Protective", "code": "Q050025", "parent": "EMP_16P_BLUE_COL", "value": 75, "children": [] }, { "name": "Occ Food Preparation Serving", "code": "Q050028", "parent": "EMP_16P_BLUE_COL", "value": 394, "children": [] }, { "name": "Occ Bldg Maintenance & Cleaning", "code": "Q050029", "parent": "EMP_16P_BLUE_COL", "value": 183, "children": [] }, { "name": "Occ Personal Care", "code": "Q050030", "parent": "EMP_16P_BLUE_COL", "value": 421, "children": [] }, { "name": "Occ Farming, Fishing & Forestry", "code": "Q050034", "parent": "EMP_16P_BLUE_COL", "value": 0, "children": [] }, { "name": "Occ Construction", "code": "Q050035", "parent": "EMP_16P_BLUE_COL", "value": 330, "children": [] }, { "name": "Occ Production Transportation", "code": "Q050041", "parent": "EMP_16P_BLUE_COL", "value": 404, "children": [] } ], [ { "name": "No Vehicle", "code": "Q029003", "parent": "VEHICLES_PER_HH", "value": "531", "children": [] }, { "name": "1 Vehicle", "code": "Q029004", "parent": "VEHICLES_PER_HH", "value": "2808", "children": [] }, { "name": "2 Vehicle", "code": "Q029005", "parent": "VEHICLES_PER_HH", "value": "2404", "children": [] }, { "name": "3 Vehicle", "code": "Q029006", "parent": "VEHICLES_PER_HH", "value": "555", "children": [] }, { "name": "4 Vehicle", "code": "Q029007", "parent": "VEHICLES_PER_HH", "value": "131", "children": [] }, { "name": "5 Vehicle", "code": "Q029008", "parent": "VEHICLES_PER_HH", "value": "53", "children": [] }, { "name": "Aggregate Number of Vehicle", "code": "Q029009", "parent": "VEHICLES_PER_HH", "value": "10078", "children": [] } ] ]; var el = ["Q029009","Q017001","Q035001"]; arr = arr.filter(e => e !== el); console.log(arr)

y .

You have an array of arrays, so .map() the outer array, and for each inner array return a .filter() that makes sure the current object's .code is not included in the el array.

var el = ["Q029009","Q017001","Q035001"];
arr = arr.map(a => a.filter(o => !el.includes(o.code)));

Demo:

 var arr =[ [ { "name": "SEASONAL_LYQ1", "code": "SEASONAL_LYQ1", "parent": "SEASONAL_POP", "value": 0, "children": [] }, { "name": "SEASONAL_LYQ2", "code": "SEASONAL_LYQ2", "parent": "SEASONAL_POP", "value": 19, "children": [] }, { "name": "SEASONAL_LYQ3", "code": "SEASONAL_LYQ3", "parent": "SEASONAL_POP", "value": 40, "children": [] }, { "name": "SEASONAL_LYQ4", "code": "SEASONAL_LYQ4", "parent": "SEASONAL_POP", "value": 22, "children": [] }, { "name": "SEASONAL_CYQ1", "code": "SEASONAL_CYQ1", "parent": "SEASONAL_POP", "value": 0, "children": [] }, { "name": "SEASONAL_CYQ2", "code": "SEASONAL_CYQ2", "parent": "SEASONAL_POP", "value": 20, "children": [] }, { "name": "SEASONAL_CYQ3", "code": "SEASONAL_CYQ3", "parent": "SEASONAL_POP", "value": 40, "children": [] }, { "name": "SEASONAL_CYQ4", "code": "SEASONAL_CYQ4", "parent": "SEASONAL_POP", "value": 24, "children": [] } ], [ { "name": "Total Educated", "code": "Q035001", "parent": "EDU_ATTAINMENT", "value": "9891", "children": [] }, { "name": "Grade  Less than 9", "code": "Q035003", "parent": "EDU_ATTAINMENT", "value": "514", "children": [] }, { "name": "Grade 9 to 12", "code": "Q035007", "parent": "EDU_ATTAINMENT", "value": "444", "children": [] }, { "name": "High School", "code": "Q035011", "parent": "EDU_ATTAINMENT", "value": "1269", "children": [] }, { "name": "Some College", "code": "Q035012", "parent": "EDU_ATTAINMENT", "value": "2001", "children": [] }, { "name": "College Degree -  Associate's", "code": "Q035014", "parent": "EDU_ATTAINMENT", "value": "400", "children": [] }, { "name": "College Degree -  Bachelor's", "code": "Q035015", "parent": "EDU_ATTAINMENT", "value": "3018", "children": [] }, { "name": "College Degree -  Master's", "code": "Q035016", "parent": "EDU_ATTAINMENT", "value": "1706", "children": [] }, { "name": "College - Professional", "code": "Q035017", "parent": "EDU_ATTAINMENT", "value": "315", "children": [] }, { "name": "College Degree - Doctorate", "code": "Q035018", "parent": "EDU_ATTAINMENT", "value": "224", "children": [] }, { "name": "Enrollments (Total Population)", "code": "EDU_Enrollments", "parent": "EDU_ATTAINMENT", "children": [ { "name": "Nursery school/Preschool", "code": "Q036003", "parent": "EDU_Enrollments", "value": "330", "children": [] }, { "name": "Kindergarten/Elementary school", "code": "Q036006", "parent": "EDU_Enrollments", "value": "1158", "children": [] }, { "name": "High School", "code": "Q036015", "parent": "EDU_Enrollments", "value": "636", "children": [] }, { "name": "College/Graduate /Professional school", "code": "Q036018", "parent": "EDU_Enrollments", "value": "1715", "children": [] }, { "name": "Not Enrolled", "code": "Q036024", "parent": "EDU_Enrollments", "value": "10324", "children": [] } ] }, { "name": "Percents", "code": "PCT_EDU_ATTAINMENT", "parent": "EDU_ATTAINMENT", "children": [ { "name": "% Grade  Less than 9", "code": "XQ035003", "parent": "PCT_EDU_ATTAINMENT", "value": "5.197", "children": [] }, { "name": "% Grade 9 to 12", "code": "XQ035007", "parent": "PCT_EDU_ATTAINMENT", "value": "4.4937", "children": [] }, { "name": "% High school", "code": "XQ035011", "parent": "PCT_EDU_ATTAINMENT", "value": "12.8274", "children": [] }, { "name": "% Some college", "code": "XQ035012", "parent": "PCT_EDU_ATTAINMENT", "value": "20.2347", "children": [] }, { "name": "% College - Associate", "code": "XQ035014", "parent": "PCT_EDU_ATTAINMENT", "value": "4.0479", "children": [] }, { "name": "% College - Bachelors", "code": "XQ035015", "parent": "PCT_EDU_ATTAINMENT", "value": "30.509", "children": [] }, { "name": "% College - Masters", "code": "XQ035016", "parent": "PCT_EDU_ATTAINMENT", "value": "17.2467", "children": [] }, { "name": "% College - Professional", "code": "XQ035017", "parent": "PCT_EDU_ATTAINMENT", "value": "3.1824", "children": [] }, { "name": "% College - Doctorate", "code": "XQ035018", "parent": "PCT_EDU_ATTAINMENT", "value": "2.2612", "children": [] } ] } ], [ { "name": "1 Person HHs", "code": "Q014010", "parent": "HH_by_size", "value": "2395", "children": [] }, { "name": "2 Person HHs", "code": "Q014011", "parent": "HH_by_size", "value": "2140", "children": [] }, { "name": "3 Person HHs", "code": "Q014012", "parent": "HH_by_size", "value": "878", "children": [] }, { "name": "4 Person HHs", "code": "Q014013", "parent": "HH_by_size", "value": "701", "children": [] }, { "name": "5 Person HHs", "code": "Q014014", "parent": "HH_by_size", "value": "247", "children": [] }, { "name": "6 Person HHs", "code": "Q014015", "parent": "HH_by_size", "value": "68", "children": [] }, { "name": "7+ Person HHs", "code": "Q014016", "parent": "HH_by_size", "value": "54", "children": [] }, { "name": "Persons Per HH", "code": "Q017001", "parent": "HH_by_size", "value": "2", "children": [] } ], [ { "name": "Occ Managerial Executive", "code": "Q050004", "parent": "EMP_16P_WHITE_COL", "value": "1748", "children": [] }, { "name": "Occ Prof Specialty", "code": "Q050010", "parent": "EMP_16P_WHITE_COL", "value": "2372", "children": [] }, { "name": "Occ Healthcare Support", "code": "Q050024", "parent": "EMP_16P_WHITE_COL", "value": "91", "children": [] }, { "name": "Occ Sales", "code": "Q050032", "parent": "EMP_16P_WHITE_COL", "value": "1323", "children": [] }, { "name": "Occ Office Admin", "code": "Q050033", "parent": "EMP_16P_WHITE_COL", "value": "623", "children": [] } ], [ { "name": "Occ Protective", "code": "Q050025", "parent": "EMP_16P_BLUE_COL", "value": 75, "children": [] }, { "name": "Occ Food Preparation Serving", "code": "Q050028", "parent": "EMP_16P_BLUE_COL", "value": 394, "children": [] }, { "name": "Occ Bldg Maintenance & Cleaning", "code": "Q050029", "parent": "EMP_16P_BLUE_COL", "value": 183, "children": [] }, { "name": "Occ Personal Care", "code": "Q050030", "parent": "EMP_16P_BLUE_COL", "value": 421, "children": [] }, { "name": "Occ Farming, Fishing & Forestry", "code": "Q050034", "parent": "EMP_16P_BLUE_COL", "value": 0, "children": [] }, { "name": "Occ Construction", "code": "Q050035", "parent": "EMP_16P_BLUE_COL", "value": 330, "children": [] }, { "name": "Occ Production Transportation", "code": "Q050041", "parent": "EMP_16P_BLUE_COL", "value": 404, "children": [] } ], [ { "name": "No Vehicle", "code": "Q029003", "parent": "VEHICLES_PER_HH", "value": "531", "children": [] }, { "name": "1 Vehicle", "code": "Q029004", "parent": "VEHICLES_PER_HH", "value": "2808", "children": [] }, { "name": "2 Vehicle", "code": "Q029005", "parent": "VEHICLES_PER_HH", "value": "2404", "children": [] }, { "name": "3 Vehicle", "code": "Q029006", "parent": "VEHICLES_PER_HH", "value": "555", "children": [] }, { "name": "4 Vehicle", "code": "Q029007", "parent": "VEHICLES_PER_HH", "value": "131", "children": [] }, { "name": "5 Vehicle", "code": "Q029008", "parent": "VEHICLES_PER_HH", "value": "53", "children": [] }, { "name": "Aggregate Number of Vehicle", "code": "Q029009", "parent": "VEHICLES_PER_HH", "value": "10078", "children": [] } ] ]; var el = ["Q029009","Q017001","Q035001"]; verify("Found codes before removal:", arr, el); // should be `true` arr = arr.map(a => a.filter(o => !el.includes(o.code))); verify("Found codes after removal:", arr, el); // should be `false` console.log(arr) function verify(msg, arr, el) { console.log(msg, arr.some(a => a.some(o => el.includes(o.code)))); }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM