js数组经典面试编程题

春招,秋招甚至是实习,多多少少会面临一些基础的编程题,这些编程题除了一些数据结构的典型情景,但是不能忽略,小看的也有一些基础编程题,如最简单的数组结构就有一些经典的编程题,这里进行简要的总结。

  • 数组去重:
function delRepeatObject(arr) {
        var resArr = [];
        var flag = true;
        for(var i =0 ;i < arr.length; i++){
            if (resArr.indexOf(arr[i])==-1){
                if (arr[i] != arr[i]){//排除NAN,因为如果arr[i]是NAN对象,则resArr.indexOf(arr[i])==-1是成立的
                    if (flag){//只能放入一个NAN对象到新数组里
                        resArr.push(arr[i]);//尾插法
                        flag = false;
                    }
                } else {
                    resArr.push(arr[i]);
                }
            }
        }
        return resArr;
    }
  •  查找数组中与目标相等的元素的下标
function findAllTarget(arr, target) {
        var result=[];
        for(var i=0;i<arr.length;i++){
            if(arr[i]===target){
                result.push(i);//假如一个数组中有多个与目标相等的对象,所以要用数组存起来
            }
        }
        return result;
    }
  • 查找数组中重复的元素
 function findRepeatTarget(arr) {
        //先给数组排序,然后如果后一个与前一个相等且未保存,则保存
        var a =[], b=[];
        a = arr.sort();
        for(var i in a){
            if(a[i]==a[i-1] && b.indexOf(a[i])==-1) {
                b.push(a[i]);
            }
        }
        return b;
    }

猜你喜欢

转载自blog.csdn.net/m0_37686205/article/details/88358126