请帮助了解如何实现此目标:
var filterAarray = [
{ id: 1, key: "fruits" },
{ id: 2, key: "fruits" },
{ id: 4, key: "vegetables" },
];
var foodArray = [
{
fruits: [
{ id: 1, label: "Apple" },
{ id: 2, label: "Cherry" }
],
vegetables: [
{ id: 4, label: "Cucumber" }
]
},
{
fruits: [
{ id: 1, label: "Apple" },
{ id: 2, label: "Cherry" },
{ id: 3, label: "Strawberry" }
],
vegetables: [
{ id: 4, label: "Cucumber" },
{ id: 5, label: "Tomato" }
]
}, {
fruits: [
{ id: 2, label: "Cherry" },
],
vegetables: [
{ id: 5, label: "Tomato" }
]
}
];
我需要获取对象foodArray的已过滤数组,其中包含来自filterAarray的所有数据。 结果必须是:
[
{
fruits: [
{ id: 1, label: "Apple" },
{ id: 2, label: "Cherry" }
],
vegetables: [
{ id: 4, label: "Cucumber" }
]
},
{
fruits: [
{ id: 1, label: "Apple" },
{ id: 2, label: "Cherry" },
{ id: 3, label: "Strawberry" }
],
vegetables: [
{ id: 4, label: "Cucumber" },
{ id: 5, label: "Tomato" }
]
}
];
即如果数组“ filterAarray”中存在“ foodArray”的对象,则必须显示
答案 0 :(得分:0)
这应该有效:
List result = dao.getServiceParam();
HashMap<Service,List<Parameter>> mapList = new HashMap<Service, List<Parameter>>();
if(!result.isEmpty()) {
for (int i=0; i< result.size(); i++) {
Object[] line = (Object[])result.get(i);
if ((BigDecimal) line[0]!=null) {
}
}
}
一般思路:检查foodArray.filter(obj =>
filterArray.every(e => !!obj[e.key].find(unit => unit.id === e.id)),
);
中的每个对象。然后检查foodArray
是否在数组中找到每个元素 。