创建和接见数组及使用方法

数组

数组:一组变量的鸠合,起一个一致的名字。
怎样运用数组:建立 取值 赋值
建立:共四种

  1. 建立空数组:var 数组名=[]; var 数组名=new Array();

      什么时候运用:暂时不晓得数据内容,先建立空数组,再追加
  2. 建立同时初始化数组内容:var 数组名=[值1,值2,…]

          什么时候运用:建立时,就已晓得数组的内容  
  3. 建立指定元素个数的数组: var 数组名=new Array(n);建立一个新数组对象,同时初始化n个空元素

  4. 建立同时初始化数组内容:var 数组名=new Array(值1,值2,…)

var week=["日","一","二","三","四","五","六"];
            0   1    2   3    4    5    6
            console.log("本日礼拜"+week[5]);

数组中每一个元素<==>一个变量: 用法和变量完全雷同!

2. 取值:猎取数组中指定位置的元素内容
   下标:数组中标识每一个元素位置的序号
       默许,自动从0最先,每一个+1,到元素个数-1完毕
   怎样取值:var 元素的值=数组名[下标];
3. 赋值:将新值放入指定位置的元素中保留
   怎样赋值:数组名[下标]=新值;

数组是援用范例的对象:
    数组名作为变量赋值或参数通报时,都是将地点值复制给对方
    效果,对方修正数组的内容,接见原数字名也会受影响

null: 主动开释一个对象的援用。null自身是原始范例的值
渣滓接纳器:陪伴主程序,同时运转的后台程序
            纪录每一个对象当前被援用的次数
          被援用的次数==0,渣滓接纳器自动开释对象内存空间
强烈建议:在运用完,较大对象后,主动赋值为null,老是好习惯
  1. 猎取数组的元素个数:arr.length属性,不加圆括号
    牢固套路:
         取得数组末了一个元素:arr[arr.length-1];

      向数组末端追加一个新元素:arr[arr.length]=新值
    js中的数组 vs 其他语言中的数组:3个区分:
      1. 不限定元素的数据范例
      2. 不限定数组长度
      3. js的数组越界不会失足!
           赋值时:自动建立制订下标的元素,保留新值
                   length属性,会随最大下标而变化
           取值时:视图从没有的下标位置取值,返回undefined
    
    1. 遍历数组:从第0个元素最先,顺次猎取每一个元素,

               对每一个元素实行雷同的操纵
         下标:遍历数组时,生成的轮回变量!
              
            var emps=[];
            var input='';
            while((input=prompt("输入员工姓名"))!="exit"){
                emps[emps.length]=input;
            }
            console.log(emps);
            var arr=[2,5,4,6,7,9];
            function getMax(arr){
                var max=arr[0];
                for(var i=1;i<arr.length;i++){
                    arr[i]>max&&(max=arr[i]);
                }
                return max;
            }
            console.log(getMax(arr));//猎取数组中最大值
//猎取元素下标的位置
            function indexOf(arr,elem){
                for(var i=0;i<arr.length;i++){
                    if (arr[i]==elem) {
                        return 1;
                    } else{
                        return -1;
                    }
                }
            }
            var emps=["A","B","C","E"];
            console.log(indexOf(emps,prompt("输入要查找的姓名")));

//冒泡排序

                function myArr(arr){
                for(var i=0;i<arr.length;i++){
                    for(var j=0;j<arr.length-i-1;j++){
                        if(arr[j]>arr[j+1]){
                            var temp=arr[j];
                            arr[j]=arr[j+1];
                            arr[j+1]=temp;
                        }
                    }
                }
            }
            var arr=[12,4,9,21,43,3];
            myArr(arr);
            console.log(arr);

关联数组

数组的API:
关联数组(hash数组):可自定义元素下标称号的数组(关联数组是字符串)
索引数组:自动从0最先分派一连不反复的序号下标
怎样建立关联数组:2种体式格局:

  1. 先建立一般空数组,再追加自定义下标的元素
     var ym=[];
     ym["sname"]="MM";
     ym["A"]=81;
     ym["B"]=53; 
     ym["C"]=89;
*关联数组的length属性失效*
*关联数组中的key不能反复*
关联(hash)数组上风:查找极快!和元素个数无关!

  2. 建立数组同时,初始化元素内容:
     var mm={"sname":"MM","A":81,"B":53,"C":89};
               key    value
     关联数组中保留的是多个key/value对儿
                        键  值

//数组去重

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

怎样遍历关联数组:

   for(var key in arr){
//顺次掏出arr中每一个key,存在变量key中
arr[key]-->取得当前正在遍历的key中存储的值
   }

## 数组API ##

数组转换成字符串:有两种要领

  1. var str=arr.toString(); 默许只能以逗号分开每一个元素。

  2. var str=arr.join(“衔接符”);自定义元素间的衔接符
    牢固套路:

    1. 将字符数组,无缝拼接为单词:
      比方: var chars=[“H”,”e”,”l”,”l”,”o”];

    2. 将单词数组,拼接为句子:

    3. 将数组转化为页面上的列表/挑选元素:

    优化:频仍字符串拼接,引荐运用数组的join要领作为替代
    步骤:

    1. 先将要拼接的子字符串,放入一个数组中,暂时保留

    2. 遍历完毕后,一次性join成一个完全字符串

var words=["we","two","who","and","who"];
    var str=words.join(" ");
    console.log(str);//we two who and who

衔接数组和猎取子数组:不修正原数组对象,返回新数组对象

   concat: var newArr=arr.concat(值1,值2,[值3,值4].....)
   slice: var subArr=arr.slice(starti[,endi+1]);
             starti: 最先的位置下标
             endi: 猎取到的位置下标
             ***含头不含尾***
             slice支撑倒数下标
             省略endi,从starti一向取到末端
            var arr=[1,4,3];
            var arr1=[22,44];
            var newArr=arr.concat(13,134,arr1);
            console.log(arr);

splice:删除,插进去,替代恣意位置的恣意个元素

    ***直接修正原数组 
删除:splice(starti,n);//starti
            var arr=[1,2,4,4,5];
            var id=arr.splice(2,2);
            console.log(arr);
            console.log(id);
    原文作者:行走的程序猿
    原文地址: https://segmentfault.com/a/1190000008405101
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞