JavaScript中-1的含义?React搜索过滤代码里的indexOf返回值解析
React搜索过滤逻辑中
-1的含义解释 你的这段代码是通过输入框内容过滤水果列表,只保留包含搜索关键词的项。这里的-1和JavaScript的indexOf()方法直接相关:
indexOf()方法的返回规则
JavaScript里的String.prototype.indexOf()用于查找子字符串在父字符串中的首次出现位置:
- 如果找到匹配的子字符串,返回它在父字符串中的起始索引(从0开始计数),比如
"Banana".toLowerCase().indexOf("ana")会返回1 - 如果完全找不到匹配的子字符串,就会返回
-1,比如"Apple".toLowerCase().indexOf("xyz")会返回-1
- 代码中的作用
return item.toLowerCase().indexOf(e.target.value.toLowerCase()) !== -1这句话的逻辑是:
只有当搜索关键词(输入框的值转小写后)在当前列表项(转小写后)中存在时,才将这个列表项保留到过滤结果filteredValues里。反过来,如果返回-1,说明当前列表项不包含搜索关键词,就会被过滤掉。
另外注意你代码里的一行语法错误:
console.log(item.toLowerCase().e.target.value.toLowerCase());
这里多了个点,应该改成:
console.log(item.toLowerCase(), e.target.value.toLowerCase());
内容的提问来源于stack exchange,提问作者Lucas Bennesby Lima
相关产品推荐
相关产品推荐

