zoukankan      html  css  js  c++  java
  • JavaScript 常见面试题

    此文内容多为 JavaScript 对数组理解及运用。

      1、如何消除一个数组里面重复的元素?

        var arr = [1, 2, 3, 3, 4, 4, 5, 5, 6, 1];
        var newArr =[];
        for(var i =0; i<arr.length; i++){
            if(newArr.indexOf(arr[i])<0){
                newArr.push(arr[i]);
            }
        }
        console.log(newArr);

      2、es6 利用 set 数组去重方法

        changeReArr=(arr)=>{
          // 利用set将数组转化成set数据,利用Array from 将set数据转化成数组
          return Array.from(new Set(arr));
        }
        console.log(changeReArr([3,3,45,6,7,8,9,5,4]));

      3、es6 set 第二种方法

        changeReArr2=(arr)=>{
          // 利用...扩展运算付将set中的值遍历出来重新定义一个数组
          // ... 是利用for...of 遍历的
          return [...new Set(arr)]
        }
        console.log(changeReArr2([3,3,45,6,7,8,9,5,4]));

      4、实现数组的随机排序

        // 方法一
        var arr = [1,2,3,4,5,6,7,8,9,10];
        function randSort1(arr){
             for(var i = 0,len = arr.length;i < len; i++ ){
                  var rand = parseInt(Math.random()*len); 
                  var temp = arr[rand]; 
                  arr[rand] = arr[i]; 
                  arr[i] = temp; 
                } 
                return arr; 
            }
        console.log(randSort1(arr));
    
        // 方法二
        var arr = [1,2,3,4,5,6,7,8,9,10];
        function randSort2(arr){
            var mixedArray = [];
            while(arr.length > 0){
                var randomIndex = parseInt(Math.random()*arr.length);
                mixedArray.push(arr[randomIndex]);
                arr.splice(randomIndex, 1);
            }
            return mixedArray;
        }
        console.log(randSort2(arr));
    
        // 方法三
        var arr = [1,2,3,4,5,6,7,8,9,10];
        arr.sort(function(){
            return Math.random() - 0.5;
        })
        console.log(arr);

      5、生成十个10到100的随机数 并添加到数组里 并排序

        var iArray = [];
        function getRandom(istart,iend)
        {
            var ichoice = iend - istart;
            return Math.floor(Math.random() * ichoice + istart);
        }
    
        for(var i =0; i<10; i++){
            var nums = getRandom(10,100);
            if(iArray.indexOf(nums) < 0){
                iArray.push(nums);
            }else{
                iArray.push(getRandom(10,100));
            }
        }
        iArray.sort();
        console.log(iArray);

      6、把两个数组合并,并删除第二个元素。

        var arr1 = ['a','b','q'];
        var arr2 = ['w','e','r'];
        var meshArr = arr1.concat(arr2);
        meshArr.splice(1,1);
        console.log(meshArr);

      7、提取URL中的各个GET参数

        var urlStr = "http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e";
        function serilizeUrl(url)
        {
            var result = {};
            url = url.split("?")[1];
            var map = url.split("&");
            for(var i = 0; i<map.length; i++){
                result[map[i].split("=")[0]] = map[i].split("=")[1];
            }
            return result;
        }
        console.log(serilizeUrl(urlStr));

      8、输出今天的日期,以YYYY-MM-DD的方式,比如今天是2014年9月26日,则输出2014-09-26

        var date = new Date();
        var dateYear = date.getFullYear();
        var dateMonth = date.getMonth() + 1;
    
        dateMonth = dateMonth < 10 ? '0'+dateMonth : dateMonth;
    
        var dateDays = date.getDate();
    
        dateDays = dateDays < 10 ? '0'+dateDays : dateDays;
    
        console.log(dateYear + '-' + dateMonth + '-' + dateDays);
  • 相关阅读:
    由一段代码说开去——set
    由一段代码说开去——list
    day 11
    day 16
    day 10
    day 13
    day 9
    day 18
    day 12
    day 14
  • 原文地址:https://www.cnblogs.com/wyhlightstar/p/8576959.html
Copyright © 2011-2022 走看看