【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()`,我們可以高效地處理字符串和數組中的查找問題,是日常開發中非常實用的一個方法。


