1. ***数组:

    关联数组:

    API: 

      转字符串

      拼接和选取

      修改

      翻转


1. 关联数组:

   索引数组: 下标为数字的数组

   问题: 每个元素,只有值,没有有意义的名称

   解决: 关联数组: 可自定义下标名称的数组

   如何: 

      创建: 2步: 1. 先创建空数组: var scores=[]

                       2. 在空数组中添加新元素,使用自定义的下标名

                              scores["MATH"]=81;

      访问元素: 用自定义的下标名称: 

            scores["MATH"] 用法和普通变量完全一样 

   关联数组原理: 

       hash算法: 散列: 接收一个字符串,然后根据字符串计算出一个尽量不重复的数字。

           相同字符串,计算出的数字一定相同

           不同的字符串,计算出的数字几乎不同的

       关联数组: hash数组

          存入元素: 将下标名交给hash算法,计算出一个尽量不重复的序号,将元素存储到数组中序号指定的位置

          获取元素: 将下标名交给hash算法,计算出和存入时完全一样的序号,直接去数组中序号位置获取元素值——不用遍历

    为什么: 1. 因为下标有意义,便于维护

                 2. 查找极快——和总元素个数以及存储位置无关!

    何时: 1. 今后只要快速查找某个元素时,都用hash数组

             2. 今后只要存储有意义的一组元素时,都用hash数组

    鄙视: 谈谈对hash的理解: 

      hash算法; 存入;  获取;   优;


   特点: length属性失效,永远为0

   遍历: for in循环: 

      for(var key in hash){//in依次获得每个元素的下标名称

         key//自动获得当前元素的下标名

         hash[key]//当前元素值

      }


2. 数组API: 浏览器已经实现的,我们直接用的函数

    数组对象: 存储一组数据,提供操作数据的API

    1. 数组转为字符串: 2种:

        1. var str=String(arr): 将arr中每个元素转为字符串,再用逗号链接成一个字符串。

        2. 可自定义连接符: 

            var str=arr.join("自定义连接符")

            固定套路: 1. 无缝拼接: arr.join("")

                            2. 判断数组是空数组: arr.join("")===""

                            3. 动态生成页面元素的内容