JavaScript用indexOf()在字符串数组中查找子串时需要注意的一个地方

简介: JavaScript用indexOf()在字符串数组中查找子串时需要注意的一个地方

一、遇到问题

在  继续更新完善:C++ 结构体代码转MASM32代码

在用字符串的indexOf()方法检测和定位'['时,发现对字符串数组无效,即使字符串数组元素值中包括'[',但返回值仍是-1。

深入分析后,找到了原因。

二、实例分析

我们通过下面这个例子来说明:

<!DOCTYPE html>
<html>
<body>

<script>

document.write("<strong>在字符串中查找'['</strong><br>");
var str="MIB_ TCP6ROW OWNER MODULE\ttable[ANY _SIZE]";
document.write('str="',str,'"',"<br>str.indexOf('[')=",str.indexOf('[')+"<br><br>"); // 在字符串中查找'['
document.write("<br><strong>在字符串数组中查找'['</strong><br>");
var a = str.split('\t');
document.write('a="', a, '"<br>',"a.indexOf('[')=",a.indexOf('[')+"<br>"); // 在字符串数组中查找'['

for (var i=0; i < a.length; i++)  
{
    document.write('<br>a[',i,'] ="', a[i], '"<br>',"a[",i,"].indexOf('[')=",a[i].indexOf('[')+"<br>"); // 在字符串数组中查找'['

}
</script>

</body>
</html>

输出结果如下:

在字符串中查找'['

str="MIB_ TCP6ROW OWNER MODULE table[ANY _SIZE]"
str.indexOf('[')=31

在字符串数组中查找'['

a="MIB_ TCP6ROW OWNER MODULE,table[ANY _SIZE]"
a.indexOf('[')=-1
a[0] ="MIB_ TCP6ROW OWNER MODULE"
a[0].indexOf('[')=-1
a[1] ="table[ANY _SIZE]"
a[1].indexOf('[')=5

image.png

在上面的例子中,对于字符串变量str,可以用indexOf()来查找子串,所以str.indexOf('[')可以直接定位到31。

当我们用split()方法把字符串str的值分割为数组a后,尽管数组a的值是"MIB_ TCP6ROW OWNER MODULE,table[ANY _SIZE]",但直接对数组名a使用indexOf()查找子串无效,返回值总是-1。

所以正确的处理方式是对数组a中的元素逐个进行搜索。


相关文章
|
23天前
|
JavaScript 前端开发
JS几种拼接字符串的方法
JS几种拼接字符串的方法
44 1
|
14天前
|
自然语言处理 前端开发 JavaScript
🛠️ JavaScript数组操作指南:20个精通必备技巧🚀
本文详细介绍了 JavaScript 中的 20 个高效数组操作技巧,涵盖了从基本的添加、移除元素,到数组转换和去重等高级操作。强调了不可变性的重要性,提供了清晰的代码示例,帮助开发者编写更整洁和高效的代码。无论是新手还是经验丰富的开发者,这些技巧都将显著提升您的编码能力,使您在项目中更具竞争力。
15 2
|
17天前
|
JavaScript 前端开发 测试技术
JS都有哪些操作数组的方法
JS都有哪些操作数组的方法
17 3
|
19天前
|
JavaScript
js删除数组中已知下标的元素
js删除数组中已知下标的元素
33 4
|
17天前
|
缓存 JavaScript 前端开发
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
24 1
|
20天前
|
JavaScript 前端开发 Java
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
21 5
|
24天前
|
JavaScript 前端开发 索引
探索JavaScript数组:基础
探索JavaScript数组:基础
13 3
|
23天前
|
JavaScript 前端开发 索引
JS 删除数组元素( 5种方法 )
JS 删除数组元素( 5种方法 )
28 1
|
25天前
|
JavaScript 前端开发
如何在JS中声明一个数组
如何在JS中声明一个数组
16 0
|
30天前
|
存储 JavaScript 前端开发
JavaScript Array(数组) 对象
JavaScript Array(数组) 对象
23 3