首页 > 行业资讯 > 宝藏问答 >

js编程题利用indexOf

2025-12-14 14:31:16

问题描述:

js编程题利用indexOf,急!求大佬出现,救急!

最佳答案

推荐答案

2025-12-14 14:31:16

js编程题利用indexOf】在JavaScript编程中,`indexOf()` 是一个非常常用的方法,用于查找数组或字符串中某个元素或字符的索引位置。它返回的是该元素首次出现的位置,如果未找到则返回 -1。本文将通过几个典型的编程题,总结如何利用 `indexOf()` 解决实际问题,并以表格形式展示答案。

一、常见用法总结

方法 说明 示例
`array.indexOf(value)` 查找数组中某个值的索引(从前往后) `[1,2,3,4].indexOf(3)` → 2
`string.indexOf(searchValue)` 查找字符串中某个子串的起始位置 `"hello".indexOf("e")` → 1
`array.indexOf(value, fromIndex)` 从指定索引开始查找 `[1,2,3,4].indexOf(2, 2)` → -1

二、典型编程题及解答

题目1:判断数组中是否包含某元素

题目描述:编写一个函数,判断数组中是否包含某个元素,若包含返回 `true`,否则返回 `false`。

解法:

```javascript

function contains(arr, value) {

return arr.indexOf(value) !== -1;

}

```

测试示例:

数组 元素 结果
[1,2,3] 2 true
[1,2,3] 4 false
["a","b"] "a" true

题目2:查找字符串中的第一个匹配字符位置

题目描述:给定一个字符串和一个字符,返回该字符在字符串中第一次出现的索引。

解法:

```javascript

function findChar(str, char) {

return str.indexOf(char);

}

```

测试示例:

字符串 字符 结果
"javascript" "s" 4
"hello world" "o" 4
"abcde" "x" -1

题目3:去除数组中重复元素

题目描述:给定一个数组,去除其中重复的元素并返回新数组。

解法:

```javascript

function removeDuplicates(arr) {

let result = [];

for (let i = 0; i < arr.length; i++) {

if (arr.indexOf(arr[i]) === i) {

result.push(arr[i]);

}

}

return result;

}

```

测试示例:

输入数组 输出数组
[1,2,2,3,4] [1,2,3,4]
["a", "b", "a"] ["a", "b"]
[5,5,5] [5]

题目4:查找多个匹配项的索引

题目描述:给定一个数组和一个值,返回所有该值的索引位置。

解法:

```javascript

function findAllIndices(arr, value) {

let indices = [];

for (let i = 0; i < arr.length; i++) {

if (arr[i] === value) {

indices.push(i);

}

}

return indices;

}

```

测试示例:

数组 结果
[1,2,3,2,4] 2 [1,3]
["a", "b", "a"] "a" [0,2]
[5,5,5] 5 [0,1,2]

三、注意事项

- `indexOf()` 只能查找第一个匹配项。

- 对于对象数组,`indexOf()` 无法正确识别相同内容的对象(需使用 `find()` 或自定义比较逻辑)。

- 在处理大型数据时,频繁调用 `indexOf()` 可能会影响性能,建议使用 `Set` 或 `Map` 提升效率。

四、总结

`indexOf()` 是 JavaScript 中非常实用的一个方法,尤其在处理数组和字符串时,可以快速定位元素或字符的位置。通过合理使用 `indexOf()`,我们可以高效地完成许多常见的编程任务,如判断存在性、查找位置、去重等。掌握其用法是提升 JavaScript 编程能力的重要一步。

免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。