在 JavaScript 中使 Array.indexOf() 不区分大小写
要通过执行不区分大小写的查找来获取元素的索引,我们必须:
- 使用函数调用 方法
- 该函数应将数组元素和字符串转换为小写并进行相等性检查
- 方法返回元素的索引,如果没有元素满足条件则返回 -1
// Not Supported in IE 6-11
const arr = ['HELLO', 'WORLD'];
const str = 'world';
const index = arr.findIndex(element => {
return element.toLowerCase() === str.toLowerCase();
});
console.log(index); // 👉️ 1
if (index !== -1) {
// 👉️ string is in the array
}
我们传递给 方法的函数会针对数组的每个元素进行调用,直到它返回真值或遍历所有元素。
在代码片段中,我们将数组元素和字符串都转换为小写,以使比较不区分大小写。
通过将元素和字符串转换为大写可以实现相同的结果。
该字符串包含在索引 1 处的数组中,因此这是 的返回值。
如果相等比较从未返回 true,则 Array.findIndex 将返回 -1。
我们无法通过使用 Array.indexOf 执行不区分大小写的查找来获取元素的索引,因为该方法直接接收值并且不允许我们遍历每个数组元素并操作它们(例如小写)。
请注意,Internet Explorer 6-11 不支持 ,因此如果您必须支持浏览器,请确保获取 polyfill 或使用 babel 将我们的代码转换为浏览器可以理解的旧版本的 JavaScript。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。