gpt4 book ai didi

javascript - 如何在 JavaScript 中搜索其他不区分大小写的对象?与 _.where() 一样,仅不区分大小写

转载 作者:行者123 更新时间:2023-11-27 23:26:47 31 4
gpt4 key购买 nike

我需要通过两个属性及其在集合中的值找到某个对象,例如在 loDash 中:

_.where(集合,searchObject)

仅不区分大小写。

我怎样才能做到这一点?

有对象:

[{
"city": "New York, US",
"name": "John",
"address": "Allen Street, 0123",
},{
"city": "New York, US",
"name": "Dale",
"address": "Barrow Street, 3210",
}];

我需要传递一个像

这样的参数
{ 
"city": 'new york, US'
"address": "Barrow street, 3210"
}

并找到第二个对象作为结果。

这个逻辑在loDash下划线中提供了_.where函数,但是他的搜索不会不区分大小写。

最佳答案

如果您需要不区分大小写,则 where 样式语法将不起作用。最好的选择是设置一个通用函数,该函数构建并返回可由 filter() 使用的 iteratee 函数。 。下面是一个使用正则表达式并设置了不敏感标志的示例:

function filterInsensitive(property, regexp) {
return _.flow(
_.identity,
_.partialRight(_.get, property),
_.method('match', regexp)
);
}

这个函数足够通用,可以与任何集合一起使用,对于任何属性值,使用任何正则表达式作为过滤器。以下是您如何将其与您的数据一起使用。

_(myColl)
.filter(filterInsensitive('city', /NEW YORK, US/i))
.filter(filterInsensitive('address', /barrow street, 3210/i))
.value();

关于javascript - 如何在 JavaScript 中搜索其他不区分大小写的对象?与 _.where() 一样,仅不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34903307/

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