数组

作者: 浮巷旧人 | 来源:发表于2018-08-01 21:56 被阅读0次

    数组

    • 定义:new Array(length/content);
      字面量 只有这两种方式
      var arr = [1,2,,,,3,4];
      var arr = new Array(1,3,3,4,6);
      只有这两种方式,这两种基本上是一样得,逗号分隔开那部分是underfined
      var arr = new Array(10);
      和上一种不同的是 如果只有这一位参数,就会被当成长度,而不是第一位的值。10个underfined ;这里如果是10.2带小数点就会报错,只能填整数,而第一种不会。
    数组常用的方法
    • 改变原数组
      push, pop , shift, unshift, sort, reverse, splice
    • 不改变原数组
      concat,join-->split,toString,slice
      1.push:往数组末尾加东西
        var  arr  =  [1,2,3];
        Array.prototype.push  =  function()  {
          for(var   i= 0; i < arguments.length; i++){
                 this[this.length]  =  arguments[i];
          }
                return this.length;
        }
    arr.push(4,5,6,7);
    

    2.pop:向数组里面剪切东西
    var arr = [1,2,3];
    arr.pop() return 3 ;
    arr() arr[1,2];
    3.shift:往数组首位去东西
    var arr = [1,2,3];
    arr.shift() return1;
    arr() arr[2,3];
    4.unshift: 往数组首位填东西
    var arr = [1,2,3];
    arr.unshift(-1,0) return5;
    arr() arr[-1,0,1,2,3]
    5.reverse:逆转
    var arr = [1,2,3];
    arr.reverse() return[3,2,1]
    6.splice:
    arr.splice(从第几位开始,截取多少的长度,在切口处添加新的数据)
    1)var arr = [1,1,2,2,3,3];
    arr.splice(0,3) arr[2,3,3]
    2)var arr = [1,2,3,5];
    arr.splice(3,0,4); arr[1,2,3,4,5];
    3)var arr = [1,2,3,4];
    splice = function(position){
    position += positon > 0 ? 0:this.length
    -1 + 4 = 3 第零位是在1前面,光标所在位置
    arr.splice(-1,1) return[ 4]
    7 .sort:正常是按阿斯克吗顺序排的
    arr[1,3,10,4,8]
    但是如果要按正常顺序排序,需按一下操作执行
    1.必须写俩形参
    2.看返回值
    1)当返回值为负数时,那么前面的数放在前
    2)为正数,那么后面的数在前
    3)为0, 不动

    var arr  =  [20,2,10,13,4,8,9];
    arr.sort(function (a,b)  {
      //  if(a>b){
    //  return a-b
    //} else{
    //  return a-b
    //}
          //return a-b;升序
          //return b-a  降序
        return b-a;
    });
    
    给一个有序的数组,乱序
    var arr  =  [1,2,3,4,5,6,7];
    arr.sort(function()  {
          return  Math.random()  -  0.5
      });
    
    function retBytes(str)  {
    var num = str.length;
    for(var i = 0;  i < str.length; i ++ ) {
        if(str.charCodeAt(i)  > 255){
                num  ++;
        }
    }
    return num;
    }
    var arr  =  ['a打',  ‘ba打’,  ‘cc打cc’,‘老打’,‘残
    打’,‘dasdasd’,‘大大是’];  
    arr.sort(function (a,  b ){
        return retBytes(a)  -  retBytes(b);
    });
    

    8.concat:拼接数组 但不改变原数组
    arr.concat(arr1)
    [1,2,3,4,5,6,7,8,9]
    arr [1,2,3,4,5,6] arr1[7,8,9]
    9.slice:(从该位开始截取,截取到该位)(两个参数)
    var arr = [1,2,3,4,5,6];
    var newArr = arr.slice(1, 3)
    newArr[2, 3]
    var newArr = arr.slice(-4)
    newArr[3, 4, 5,6] 如果是截一位,一直截取到最后
    10.join:用来连接数组
    var arr = [1,2,3,4,5,6]; var str = arr.join("-")
    str return "1-2-3-4-5-6"
    str.split("-") return ['1','2','3','4','5','6']

    var str  =  'alibaba';
    var str1  =  'baidu';
    var str2  =  'tencent';
    var str3 = 'toutiao';
    var strFinal ="";
    //散列
    var arr  =[str,str1,str2,str3];
    console.log(arr.join(""))
    

    相关文章

      网友评论

          本文标题:数组

          本文链接:https://www.haomeiwen.com/subject/xsldvftx.html