arr.indexof的用法
arr.indexOf()是JavaScript语言中一个常用的方法。它可以返回一个指定值在数组中的位置(索引),如果数组中没有该值,则返回-1。该方法经常在数组操作以及数据查过程中被使用。本文将会对该方法进行详细介绍及演示。
indexof能用于数组吗### 语法
arr.indexOf(searchElement, fromIndex)
- searchElement:必需,表示要查的元素。 - fromIndex:可选,表示从哪个索引开始查。默认从0开始,如果fromIndex为负数,则表示从数组结尾处开始计算。
### 返回值
如果到了元素,则返回该元素在数组中的位置(索引);如果没有到,则返回-1。
### 示例
```javascript const arr = [1, 2, 3, 4, 5]; console.log(arr.indexOf(3)); // 2 console.log(arr.indexOf(6)); // -1 ```
在这个示例中,我们先创建了一个包含数字1-5的数组。使用`arr.indexOf(3)`可以查数字3在数组中的位置,因为3在数组中的索引是2,所以返回了2。而使用`arr.indexOf(6)`则查不到数字6,返回-1。
### 用途
arr.indexOf()方法在实际开发中有很多应用场景,下面我们将介绍一些典型用途。
#### 数组去重
由于数组中可以存在重复的元素,有时我们需要将数组中重复的元素去重。通过使用`indexOf()`方法可以轻松地实现去重。
```javascript const arr = [1, 2, 3, 4, 5, 2, 4]; const uniqueArr = []; for (let i = 0; i < arr.length; i++) {  if (uniqueArr.indexOf(arr[i]) === -1) {    uniqueArr.push(arr[i]);  } } console.log(uniqueArr); // [1, 2, 3, 4, 5] ```
在这个示例中,`uniqueArr`数组用于存放不重复的元素,我们循环遍历原数组中的每个元素,如果该元素不在`uniqueArr`中出现过,则将该元素加入到`uniqueArr`中。
#### 判断元素是否在数组中出现过
有时候我们需要判断一个元素是否在数组中出现过。可以使用`indexOf()`方法实现,如果返回的索引不为-1,则表示该元素在数组中出现过。
```javascript const arr = [1, 2, 3, 4, 5]; console.log(arr.indexOf(3) !== -1); // true console.log(arr.indexOf(6) !== -1); // false ```
在这个示例中,我们使用`indexOf()`方法判断3和6是否出现在数组中。
#### 根据元素值删除数组元素
有时候我们需要在数组中删除一个或多个特定的元素。可以使用`indexOf()`方法和`splice()`方法实现。
```javascript const arr = [1, 2, 3, 4, 5]; const index = arr.indexOf(3); if (index !== -1) {  arr.spli
ce(index, 1); } console.log(arr); // [1, 2, 4, 5] ```
在这个示例中,我们使用`indexOf()`方法查元素3在数组中的位置,并将该位置及其后面的一个元素删除,最终输出删除后的数组。
### 注意事项
如果要查的元素是一个对象,那么在比较时会按照引用地址进行比较。例如:
```javascript const obj = { name: '张三' }; const arr = [obj]; console.log(arr.indexOf({ name: '张三' })); // -1 console.log(arr.indexOf(obj)); // 0 ```
在这个示例中,我们先定义了一个对象`obj`,然后将该对象放入数组中作为元素。当我们使用`indexOf()`方法查时,传入一个新建的对象,因为该对象的引用地址与`obj`不同,所以查失败;而当我们传入`obj`,因为它是同一个对象的引用,所以查成功。
### 总结
在本文中我们详细地讲解了`indexOf()`方法的用法,介绍了其返回值、语法及用途。希望本
文对读者有所帮助,加深对该方法的理解。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。