数组使用 indexOf
时间: 2023-11-29 19:43:16 浏览: 180
数组使用 indexOf 方法可以查找数组中是否包含某个元素,并返回该元素在数组中的第一个索引位置。如果数组中不包含该元素,则返回 -1。需要注意的是,indexOf 方法区分元素类型,即如果要查找的元素是字符串类型,则需要传入字符串类型的参数;如果要查找的元素是数字类型,则需要传入数字类型的参数。另外,lastIndexOf 方法与 indexOf 方法类似,只不过它返回的是最后一个匹配元素的索引位置。需要注意的是,indexOf 和 lastIndexOf 方法都只能查找一维数组中的元素,不能查找多维数组中的元素。
相关问题
数组的indexof
数组的indexOf方法用于查找指定元素在数组中首次出现的索引位置。它接受两个参数:searchElement表示要查找的元素,fromIndex表示开始查找的位置。如果找到了指定元素,则返回其在数组中的索引位置;如果未找到,则返回-1。[2]在使用时,如果不提供fromIndex参数,则默认从数组的第一个元素开始查找。如果提供了fromIndex参数,且该值大于或等于数组长度,则表示不会在数组中进行查找,直接返回-1。如果fromIndex是一个负值,则从数组末尾开始计算,-1表示从最后一个元素开始查找,-2表示从倒数第二个元素开始查找,以此类推。需要注意的是,负值并不改变查找顺序,仍然是从前向后查询数组。如果抵消后的索引值仍小于0,则会查询整个数组。[3]所以,数组的indexOf方法可以帮助我们找到指定元素在数组中的位置。
数组没有indexOf
数组没有indexOf方法的情况下,可以通过添加一个indexOf方法来实现该功能。在给出的代码中,如果发现数组没有indexOf方法,就会添加上这个方法。具体实现代码如下:
```
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(elt /*, from*/) {
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0) ? Math.ceil(from) : Math.floor(from);
if (from < 0) from = len;
for (; from < len; from++) {
if (from in this && this[from] === elt) return from;
}
return -1;
};
}
```
当数组中某个字符串在指定的数组中没有出现时,indexOf方法会返回-1。可以利用这一特性来实现数组去重。将所有返回-1的索引值保存在一个新数组中,这样就可以得到去重后的数组了。具体实现代码如下:
```
var arr = [10, 20, 30, 40, 50, 60, 70, 80, 90, 20, 30, 60, 70]; // 原数组
function unique(arr) {
var temp = [];
for (var i = 0; i < arr.length; i++) {
if (temp.indexOf(arr[i]) == -1) { // indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
temp.push(arr[i]);
}
}
console.log(temp);
}
unique(arr);
```
回答完问题后,请问还有其他问题吗?
阅读全文