gpt4 book ai didi

javascript - 使用 Underscore JS _contains 方法检查数组中的键/值对是否存在

转载 作者:行者123 更新时间:2023-11-30 17:15:50 25 4
gpt4 key购买 nike

如果我有以下对象:

var record = {
title: "Hello",
children: [
{
title: "hello",
active: true
},
{
title: "bye",
active: false
}
};

我想使用下划线来确定记录中的一个子项是否具有或不具有等于将来自表单帖子的变量的标题,但也需要不区分大小写...例如:

var child = { title: "heLLo", active: true }

还有下划线(这是错误的,我需要帮助):

if ( _.contains(record.children, child.title) ) {
// it already exists...
} else {
// ok we can add this to the object
}

所以基本上我不明白在处理具有多个键/值对的数组对象时如何使用下划线来做到这一点。另外忽略大小写的最佳方法是什么?这应该在下划线 _.contains 函数中完成吗?正则表达式?预先使用 toLowerCase() 来创建变量?如果有人输入“Hello”、“HELLO”、“heLLO”等任何变体。我不希望插入发生。

谢谢!

最佳答案

使用_.findRegExp带有“i”大小写忽略标志

var valueFromPost = "bye";
var someOfChildrenHasValueFromPost = _.find(record.children,function(child){
return child.title.match(new RegExp(valueFromPost,"i"));
});

更新

这是一个例子 @JSFiddle

JS代码:

record = {
children:[
{title:'bye'},
{title:'Bye'},
{title:'Hello'}
]
}
var testValue = function(value) {
return _.find(record.children,function(child){
return child.title.match(new RegExp(value,"i"));
});
}
console.debug(testValue('Bye')); //returns object with "Bye" title
console.debug(testValue('What'));//returns undefined
console.debug(testValue('bye')); //returns object with "bye" title

关于javascript - 使用 Underscore JS _contains 方法检查数组中的键/值对是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26146020/

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