【js编程题利用indexOf】在JavaScript中,`indexOf()` 是一个非常常用的字符串和数组方法,用于查找某个元素或字符在数组或字符串中的位置。它返回的是首次出现的索引值,如果未找到则返回 -1。掌握 `indexOf()` 的使用,对于解决一些常见的编程题非常重要。
以下是一些典型的JS编程题,涉及 `indexOf()` 的使用,并附上总结与表格形式的答案。
一、常见编程题及解析
1. 判断字符串中是否包含某个子串
题目描述:判断字符串 `"hello world"` 中是否包含 `"world"`。
解法:
```javascript
let str = "hello world";
if (str.indexOf("world") !== -1) {
console.log("包含");
} else {
console.log("不包含");
}
```
结果:包含
2. 查找字符第一次出现的位置
题目描述:找出字符串 `"apple banana cherry"` 中第一个 `'a'` 的位置。
解法:
```javascript
let str = "apple banana cherry";
let index = str.indexOf('a');
console.log(index); // 输出 0
```
结果:0
3. 在数组中查找元素
题目描述:在数组 `[1, 2, 3, 4, 5]` 中查找元素 `3` 的位置。
解法:
```javascript
let arr = [1, 2, 3, 4, 5];
let index = arr.indexOf(3);
console.log(index); // 输出 2
```
结果:2
4. 检查重复元素
题目描述:判断数组 `[1, 2, 3, 2]` 中是否有重复元素。
解法:
```javascript
function hasDuplicate(arr) {
for (let i = 0; i < arr.length; i++) {
if (arr.indexOf(arr[i]) !== i) {
return true;
}
}
return false;
}
console.log(hasDuplicate([1, 2, 3, 2])); // 输出 true
```
结果:true
5. 替换第一个匹配项
题目描述:将字符串 `"apple apple apple"` 中的第一个 `"apple"` 替换为 `"orange"`。
解法:
```javascript
let str = "apple apple apple";
let index = str.indexOf("apple");
let newStr = str.slice(0, index) + "orange" + str.slice(index + 5);
console.log(newStr); // 输出 "orange apple apple"
```
结果:orange apple apple
二、总结与表格
题目类型 | 使用方法 | 示例代码 | 返回值/结果 |
判断子串是否存在 | `indexOf()` | `str.indexOf("world") !== -1` | 包含 / 不包含 |
查找字符位置 | `indexOf()` | `str.indexOf('a')` | 0 |
数组查找元素 | `indexOf()` | `arr.indexOf(3)` | 2 |
判断重复元素 | `indexOf()` | `arr.indexOf(arr[i]) !== i` | true / false |
替换第一个匹配项 | `indexOf()` + `slice()` | `str.slice(0, index) + "orange"` | "orange apple apple" |
三、注意事项
- `indexOf()` 对大小写敏感。
- 如果要忽略大小写,可以先将字符串转换为统一格式(如小写)再进行查找。
- 若需查找最后一个匹配项,建议使用 `lastIndexOf()`。
通过合理使用 `indexOf()`,我们可以高效地处理字符串和数组中的查找问题,是日常开发中非常实用的一个方法。