-2
我有一个数组,我想迭代和过滤出来的基于另一个数组的键。我需要迭代通过第一个数组,并删除该项目,如果代码匹配从第二个数组。我知道我应该使用数组过滤器,但我无法了解如何将第二个数组作为过滤器。通过阵列与另一个阵列的值过滤
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)
年。
'arr'是一个数组* *阵列,和'el'是一个字符串数组。通过执行'e!== el',你可以将一个对象数组与一个字符串数组进行比较,这不仅不起作用,而且完全不是你想要做的。您必须过滤内部数组,其中'el'不包含内部数组对象的'code'属性。或者*包含 - 你的问题和代码似乎在做两件不同的事情。 – Santi
如果您的代码段更简洁,这将会有所帮助。其次 - 为什么你要在数组中创建一个对象数组?如果你不需要反对,那数据结构并不理想。 – zfrisch
您当前的[filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)函数不会解决复杂的数据模式。 –