• 数组Array、数组API


    1、数组:批量管理多个数据的存储空间。

    数组的作用:现实中,批量管理多个数据都是集中分组存放,良好的数据结构,可极大提高程序的执行效率!

    优点:方便查找

    2、创建数组:(4种方式)

    (1)var 变量名=[]; 创建一个空数组
    何时使用:暂时不知道数组中的元素内容时
    (2)var 变量名=[值1,值2,...];
    -->创建数组同时,初始化数组中的数据
    (3)var 变量名=new Array(); 创建一个空数组
    new:在window之外,创建一个新空间,保存多个数据
    返回新空间的地址!

    注意:Array:js中的内置数组类型,数组是应用类型的对象。

    引用类型:对象不保存在变量本地,变量通过对象的地址使用对象。

      (4)var 变量名=new Array(值1,值2,...);

    3、使用数组中每个元素的值:

    数组的存储结构:数组中每个数据都是一个元素,每个元素都有唯一的下标,数组自动为每个元素生成序号,序号从0开始,自增1。

    最后一个元素的下标=元素个数-1;

    语法:数组变量名[下标];

    注意:输出对象中不存在的元素:undefined;无论数组中实际存储几个元素,数组的长度只和最后一个下标有关,数组长度=最后一个下标+1。

    4、索引数组和关联数组

    索引数组:下标自动从0开始为每个元素顺序编号;

    关联数组:可为每个元素自定义下标;

      创建关联数组(hash数组):

        var arr=[];

        arr.ename="Tom";

        arr.age=20;

        arr.sex="男";

    关联数组能够“快速”、“精确”的查找数组中的一元素;

    注意:JS中一切都是关联数组;关联数组下标没有规律;length无效。

    5、二维数组:数组中的元素又引用了另一个数组对象。

    使用:保存横行竖列、具有上下级包含的数据;

    创建:eg   

        var arr=[
            ["保定","唐山","秦皇岛"],
            ["郑州","洛阳","驻马店"]
            ];

    6、遍历数组

    (1)遍历索引数组:

        var arr=[];

        for(var i=0;i<arr.length;i++){……}

    (2)遍历关联数组:

        var arr=[];

        for(var key in arr){

        arr[key]=value;

        }

    (3)遍历二维数组:

        var arr=[ [] ,[] ];

        for(var row=0;row=arr.length;row++){

         for(var col=0;col=arr[row].length;col++){

          arr[row][col];
          }

        }

    7、数组API

    (1)、arr.sort([比较器函数对象]);

    比较器函数:compare=function(a,b){return a-b}

          arr.sort(comprare);

    (2)、栈和队列:JS中没有专门的栈和队列的类型,都是用数组模拟出来

    栈:一端封闭,只能从另一端进出的数组

    使用:数组只能从一端进出

      末尾入栈:arr.push(新值,……);

      末尾出栈:var e=arr.pop();

      从头入栈:arr.unshift();

      从头出栈:var e=arr.shift();

    (3)、将数组转化为字符串

      arr.toString();输出格式固定:中括号包裹,逗号分隔

      arr.join([“分隔符”]):默认等同于toString();

    (4)、拼接和截取子数组

      var newArr=arr.contact(另一个数组,值1,值2);

      原数组不变,返回拼接后新数组对象!

    (5)、截取字数组

     var subArr=arr.slice(stari,end[i+1]);//截取arr数组中从starti位置开始,到endi位置结束的元素组成新的子数组返回。含头不含尾。

     splice:插入:arr.splice(插入位置,0,新值1,新值2……);

        删除:arr.splice(开始位置,删除个数);

        替换:arr.splice(开始位置,删除个数,新值1,……);

    (6)、翻转:arr.reverse();

    8、排队抢火车票(例子)

    var tickets=10;

    var people=[];

    for(var i=0;i<10;i++){

      people.push("乘客"+i);

    }

    console.log(people);

    while(tickets>0){

      var p=people.shift();

      tickets--;

      console.log(p+"抢到了;"+"还剩下"+tickets+"张票");

    }

    console.log(people+"没抢到票");

    9、十进制转化为二进制

    /*十进制整数转二进制:
    十进制反复/2,记录每次的余数
    直到商=1时,将商和最后一次余数都计入结果
    将所有余数颠倒,就是二进制表示
    */

    function toBin(n){

      var reslut=[];

      while(n>1){

        reslut.push(n%2);

        n=parseInt(n/2);

      }

      reslut.push(1);

      return reslut.reverse().join(' ');

    }

    var n=110;

    console.log(tobin(n));

    console.log(n.toString(2));//对比

     

     

    佳物不独来,万物同相携。
  • 相关阅读:
    面向对象高级
    面向对象进阶
    python文件的两种用途
    python常用模块
    模块的搜索路径
    循环导入问题
    模块的导入
    面向过程编程
    函数及嵌套函数调用
    python文件操作详解
  • 原文地址:https://www.cnblogs.com/rongrongtu/p/4995805.html
Copyright © 2020-2023  润新知