Javascript 如何使用lodash js检查数组中是否存在字符串?
我的代码片段如下所示:Javascript 如何使用lodash js检查数组中是否存在字符串?,javascript,lodash,Javascript,Lodash,我的代码片段如下所示: let go = "hello"; let col =["12","hello","14","15"]; let f = _.some(col,go); 我想检查go值是否存在于col TRUE/FALSE中。 当我运行这个时,我得到,f=false?如何修复此问题,或者如何检查字符串数组中是否存在字符串(使用lodash)?仅使用javascript,您可以使用indexOf。如果存在,它将返回元素else-1的索引 放手=“12”; 让col=[“12”,“你
let go = "hello";
let col =["12","hello","14","15"];
let f = _.some(col,go);
我想检查go值是否存在于col TRUE/FALSE中。
当我运行这个时,我得到,f=false?如何修复此问题,或者如何检查字符串数组中是否存在字符串(使用lodash)?仅使用javascript,您可以使用
indexOf
。如果存在,它将返回元素else-1的索引
放手=“12”;
让col=[“12”,“你好”,“14”,“15”];
变量isElemPresent=(列indexOf(go)!=-1)?对:错
console.log(isElemPresent)
应该可以工作
let go = "hello";
let col =["12","hello","14","15"];
let f = _.includes(col,go);
您似乎误解了
的最后一个参数。有些是什么。您不能将其用作相等性测试的值,但您需要自己制作一个这样的值:
let go = "hello";
let col =["12","hello","14","15"];
let f = _.some(col,go);
let f=\.some(col,function(go){return go===“hello”})代码>
这是为你工作的
或者,您也可以使用es6 magic并直接从阵列中调用Include,如下所示
let go=“hello”;
让col=[“12”,“你好”,“14”,“15”];
警报(col.includes(go))
indexOf
将仅返回“hello”的1
。如果将go
更改为其他内容,则返回false
。您最好使用!==-1
。您还需要注意类型比较indexOf
执行类型安全比较,因此col.indexOf('12')
将返回0
,而col.indexOf(12)
将返回-1
@a.Lau。问题也用javascript标记。如果您使用的是loadash,也没有什么可以阻止您使用javascript。检查loadash库inlcude函数是如何实现的。我将重点回答一些其他问题,而不是澄清。感谢you@brk它只是因为==1
而被否决。对于'12'
、'14'
和'15'
col.indexOf('12')
返回0
,这意味着它肯定存在。如果col
在位置#3处包含“hello”
,则即使“hello”
肯定存在,也会返回false
。为变量命名isPresent
与代码所做的工作不符。如果你想让它完全准确,你应该把它命名为第二个索引,我不知道为什么有人会否决这个问题。使用香草JS。这不需要依赖于库,它内置于核心语言中。这还可以通过子字符串进行搜索:let f=389;.some(col,function(go){return go.toLowerCase().indexOf(“he”.toLowerCase())});