今日在刷牛客网上面的面试题,然后碰到手写编程题,就将他们记录下来
题目一 查找数组中的元素
题目给的是这个样子
其实知道数组方法的都会觉得特别简单,直接使用indexOf方法就可以实现,因为他可以查找数组中某一项在数组中第一次出现的位置的位置
function indexOf(arr, item) {
return arr.indexOf(item);
}
indexOf([1,2,3,4],3);
但是如果浏览器不支持indexof的情况下呢,就要先判断,然后使用自定义方式
function indexOf(arr, item) {
if (Array.prototype.indexOf){//判断数组的原型是否有index方法
return arr.indexOf(item);
} else {
for (var i = 0; i < arr.length; i++){
if (arr[i] === item){
return i;
}
}
}
return -1;
}
indexOf([1,2,3,4],3);
而且其实第一种方式还有一个局限性,就是如果数组中要查找的那一项还有重复的话,那么indexof只能返回该项第一次出现的位置。