gpt4 book ai didi

javascript - 如何在 JavaScript 中有效地比较一个对象数组与另一个数组?

转载 作者:行者123 更新时间:2023-12-01 02:35:04 25 4
gpt4 key购买 nike

我有一个函数,我必须返回具有匹配过滤器的元素数组。函数代码如下:

filter_getCustomFilterItems(filterNameToSearch: string, appliedFilters: Array<any>) {
let tempFilterArray = [];
let masterFilterList = getMasterFilterList();
/*
filterNameToSearch can be a string either as `Item2` or `Item3`

masterFilterList will be of type
masterFilterList: Array<any> = [
{
Item1: 'some-item-1',
Item2: 'some-item-2',
Item3: 'some-item-3',
Item4: 'some-item-5',
},
{
Item1: 'some-item-10',
Item2: 'some-item-11',
Item3: 'some-item-12',
Item4: 'some-item-13',
},......
];

appliedFilters will be of type
appliedFilters: Array<any> = [
{
name: 'Item1',
filters: [
{value: 'some-item-1', status: 'selected'},
{value: 'some-item-10', status: 'selected'}
]
},......
];
*/

for (let masterFilterItem of masterFilterList) {
//Missing logic here
}
}

我想过滤masterFilterList以返回一个项目数组filterNameToSearch = 'Item2' 在以下条件下:

1) 对于 appliedFilters 中的每个数组元素(假设 appliedFilterItem),将 appliedFilterItem.namemasterFilterItem[appliedFilterItem.name ] 并检查 appliedFilterItem 中的任何过滤器是否与 masterFilterItem[appliedFilterItem.name]

具有相同的值

2) 条件必须类似于 masterFilterItem[appliedFilterItem[0].name] == AppliedFilterItem[0].filters[0].value && AppliedFilterItem[0].filters[0].status === '选中' && masterFilterItem[appliedFilterItem[1].name] == AppliedFilterItem[1].filters[0].value && AppliedFilterItem[1].filters[0].status === '选中' 等等对于所有应用的FilterItems。但 appliedFilters 中的元素数量是动态的。

请帮我解决这个问题吗?

最佳答案

  return masterFilterList.map(el => el[filterNameToSearch])
.filter(value =>
appliedFilters.some(({name, filters}) =>
name === filterNameToSearch &&
filters.some(filter =>
filter.status === "selected" &&
filter.value === value
)
)
);

关于javascript - 如何在 JavaScript 中有效地比较一个对象数组与另一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47990261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com