gpt4 book ai didi

javascript - 使用来自另一个数组的查询的多个条件过滤数组

转载 作者:行者123 更新时间:2023-11-30 14:07:36 26 4
gpt4 key购买 nike

我有 2 个数组。一个包含这样的数据。

[{_id:123, Name: Mike, City: London},
{_id:456, Name: John, City: New York}]

另一个数组有这样的查询。

[{fieldName: Name, operator: ===, value: Mike, logicalOperator: ||},
{fieldName: City, operator: !==, value: London, logicalOperator: ||},]

我们如何用第二个数组过滤第一个数组。

有点像

data.filter(item => query.map(q => item.query.fieldName q.operator q.value)

最佳答案

您可以使用函数来表示比较操作:

[{
fieldName: "Name",
operator: (a, b) => a === b,
value: "Mike",
logicalOperator: (a, b) => a || b,
}, {
fieldName: "City",
operator: (a, b) => a !== b,
value: "London",
logicalOperator: (a, b) => a || b
}]

那么就很简单了:

data.filter(item => query.reduce((acc, q) => q.locicalOperator(
acc,
q.operator(item[q.fieldName], q.value)
), true);

关于javascript - 使用来自另一个数组的查询的多个条件过滤数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55105177/

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