zoukankan      html  css  js  c++  java
  • 复习数组做的两道题

    复习数组操作push,unshift,pop,shift,splice等操作

    1、求一个星期几的前三天和后三天

    假定一个正常的周 var arr = [1,2,3,4,5,6,7];

    去掉后三天就本身和前三天 所以单独的对后三天操作;让其在后面即可

     1 var date = new Date();
     2 var day = date.getDay();
     3 day = day || (7 - day);
     4 function getWeek(day){
     5     var arr = [1,2,3,4,5,6,7];
     6     var b = day - 4;
     7     // 取后三天
     8     if(b >= 0){
     9         for(var i = 0; i < b;i++){
    10             // []
    11             arr.push(arr.shift());
    12         }
    13     }else{
    14         for (var i = 0 ; i < -b;i++) {
    15             arr.unshift(arr.pop());
    16         };
    17     }
    18     arr.splice(3,1);
    19     return arr;
    20 }
    21 getWeek(6);

    2、取两个数组的重复项

    常规的方法使用两个循环判断即可;

    根据数组去重的方法,好处是当多个数组的时候仍然可以快速找出重复项

    在原型上扩展一个方法getAnd,用于取出数组中的重复项;

    多个数组合并成一个使用即可

    Array.prototype.getAnd = function(){
        var len = this.length;
        var result = [];
        for(var i = 0; i < len; i++){
            var obj = this[i];
            for (var j = i+1; j < len;) {
                if(this[j] == obj){
                    result = result.concat(this.splice(j,1));            
                    break;
                }else{
                    j++;
                }
            };
        };
        return result;
    }
    var arr1 = [1,2,3,5,6,9];
    var arr2 = [1,2,3,5,10,11];
    console.log(arr1.concat(arr2).getAnd());

    这样的效率没有直接循环高,仅提供思路作参考。。

  • 相关阅读:
    PS软件之,快速的修改图片你的尺寸
    想的太多,做的太少
    Java-Junit 的Hello world
    Java-hibernate的映射文件
    工作思路
    Spring入门Hello World
    PHP 进制问题
    Java-hibernate的Hello World
    PHP获得header头进行分析
    动软模板使用教程
  • 原文地址:https://www.cnblogs.com/w3cjiangtao/p/3244727.html
Copyright © 2011-2022 走看看