zoukankan      html  css  js  c++  java
  • 两道面试题

    1.数组去重排序:

      

    var arr = [1,1,1,2,2,23,32,78,1,34,221,433];
    function arrFoo(arr){
        var arrTemp = [];
        for(var i in arr){
            if(arrTemp.indexOf(arr[i]) === -1){
                arrTemp.push(arr[i]);
            }
        }
        arrTemp.sort(function(a,b){
            return a - b;
        });
        return arrTemp;
    }
    console.log(arrFoo(arr));

    2.深拷贝:

    var obj = {};
    var readycopy = {
        b: {
            c : {
                e : 2
            },
            d : {
                f : 3
            }
        }
    };
    //Object.assign,new Object, Object.
    create都属于浅拷贝,只是对象的引用
    function copyIndeep(obj){
        var str;
        if(typeof obj !== "object" || obj === null)
            return;
        var objTemp = obj instanceof Array ? [] : {};
        if(window.JSON){
            str = JSON.stringify(obj);
            objTemp = JSON.parse(str);
            return objTemp;
        }else{
            for(var i in obj){
                if(typeof obj[i] === 'object'){
                    objTemp[i] = copyIndeep(obj[i]);
                }else{
                    objTemp[i] = obj[i];
                }
            }
            return objTemp;
        }
    }
    obj.a = copyIndeep(readycopy);
    readycopy.b = "123";
    console.log(obj);

      

  • 相关阅读:
    欧拉图
    hdu2544 迪杰斯特拉题目优化
    迪杰斯特拉--数组模拟邻接表优化
    快速幂
    四叉树 bnuoj
    逆康拓展开展开
    全排列 STL
    魔板拼图
    「luogu4366」最短路
    「国家集训队」稳定婚姻
  • 原文地址:https://www.cnblogs.com/dansingal/p/7093701.html
Copyright © 2011-2022 走看看