数组没有indexOf
时间: 2023-11-04 15:56:07 浏览: 41
数组没有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);
```
回答完问题后,请问还有其他问题吗?