• 算法题


    1 实现多维数组去重排序:

    var arr = [8,5,4,7,3,2,[2,9,5,3,0,4,[4,3,1,9,0,5]]],
        a = [], item;
    
    function s(arr){
        for(item of arr){
            if(Array.isArray(item)){
                s(item);
            } else {
                a.push(item);
            }
        }
    }
    s(arr);
    a = [...new Set(a)].sort((a, b) => {
        return a-b;
    });
    console.log(a);

    2 实现数组排序:

    var arr = [7,4,9,5,3,0,1],
        len = arr.length,
        i, k;
    
    for(i = 0; i < len - 1; i++){
        for(k = 1; k < len - i; k++){
            if(arr[i] > arr[i+k]){
                t = arr[i];
                arr[i] = arr[i+k];
                arr[i+k] = t;
            }
        }
    }
    console.log(arr);

    3 实现数组去重:

    var arr = [7,4,9,5,3,0,1,5,3,7,9,5,0,1,2,3,5],
        a = [];
    
    arr.forEach(item => {
        if(!a.includes(item)){
            a.push(item);
        }
    });
    console.log(a);

    4 实现对象的深拷贝

    var obj = {
            a: 1,
            b: {
                c: 3
            }
        };
    function deepClone(obj) {
        var objClone = Array.isArray(obj) ? [] : {};
        if (obj && typeof obj === "object") {
            for (key in obj) {
                // for in 会循环出原型上的属性
                if (obj.hasOwnProperty(key)) {
                    if (obj[key] && typeof obj[key] === "object") {
                        objClone[key] = deepClone(obj[key]);
                    } else {
                        objClone[key] = obj[key];
                    }
                }
            }
        }
        return objClone;
    }
    console.log(deepClone(obj));   
    // {
    //     a: 1,
    //     b: {
    //         c: 3
    //     }
    // }
    console.log(deepClone(obj) === obj);   // false

     5 判断字符串是否是回文

    var str = '12321';
    Array.from(str).reverse().join('') === str
    var s = '23432';
    function isRstr(){
        for(let i = 0 ; i < s.length/2; i++) {
            if (s[i] !== s[s.length - i - 1]) {
                return false;
            } 
        }
        return true;
    }
    console.log(isRstr(s));
  • 相关阅读:
    tomcat websocket 实现网页在线即时聊天
    可编辑DIV 光标位置 处理
    Java匿名内部类使用与示例
    JS判断值是否是数字
    BAT等大型互联网公司的网站架构演化历程
    GIT总结
    5.1_二叉树
    4.4_8种常用排序算法5(基数排序)
    4.3_8种常用排序算法4(归并排序)
    4.3_8种常用排序算法3(选择排序:简单选择排序+堆排序)
  • 原文地址:https://www.cnblogs.com/xjy20170907/p/12690636.html
Copyright © 2020-2023  润新知