• javascript中数组的基础----length和元素的求和


    一.什么是数组?数组的好处是什么?

    1.数组就是由许多名称相同的变量聚集在一起,数组的用法和普通变量是完全一样的,它也可以存入任何数据类型,

    唯一的不同点是它在内存中占据的是一块连续的空间,可以依序给它们编号,再依编号来使用它们。数组的好处

    在于它可以一次声明和使用多个变量。JAVAScript中使用的时候要用中括号“[]”括起来,不同的变量中间用逗号“,”隔开。

    2.数组的存储在堆中的,数组的名字存储在栈中,栈中的引用堆中的,和对象的引用相同。

    3.和对象一样,存储在堆中,查找速度快。

    二.元素的求和

    1.使用遍历的方法求和

     var arr=[1,2,3,4,5,6];
     var s=0;
            for(var prop in arr){
                s=s+arr[prop];  
            }
            console.log(s)        结果:     21    

    2.使用递归的方法求和(上篇文章讲过了递归)

            var arr=[1,2,3,4,5,6];
            var sum=function (s,n){
                if(!arr[n]) return s;
                s+=arr[n];            //这里s+=arr[n]; 不能放在上面执行,会造成undefined,进行加法运算,结果会变成NaN.
                return sum(s,n+1);
            }
            
            console.log(sum(0,0))       结果:   21     
    这种匿名函数还可以使用自执行函数,函数名字使用arguments.callee() 来代替。

    三.length

    length是数组的长度,最大下标+1=length。    因此可以使用length进而操作数组的下标,继而实现数组的删除,增加,截取,清空等功能。

    1.增加元素

    var arr=[1,2,3,4,5,6];
    arr[arr.length]=10;
    console.log(arr);         //利用length给数组添加元素          结果是:   [1,2,3,4,5,6,10]

    2.替换元素

    var arr=[1,2,3,4,5,6];
    arr[arr.length-2]=10;
    console.log(arr);         //利用length给数组添加元素          结果是:   [1,2,3,4,10,6]

    从上面两点可以看出数组的length是可以变化的,因此可以利用legnth来给空数组赋值。

           var arr=[];
            for(var i=0;i<10;i++){
                arr[arr.length]=i
            }
            console.log(arr);      结果是:  [0,1,2,3,4,5,6,7,8,9]

    3.删除元素

           var arr=[1,2,3,4,5];   //删除最后一个元素
            arr.length--;
            console.log(arr);      结果:[1,2,3,4]

    4.清空数组

            var arr=[1,2,3,4,5];
            var len=arr.length;        //数组长度变化时,length不能被用来直接当做判断条件,因为length就是数组长度,同样变化
            for(var i=0;i<len;i++){  
                arr.length--;
            }
            console.log(arr)            结果:[]

    第二种方法:
        
     var arr=[1,2,3,4,5];
              for(;--arr.length;){       //这里不能用arr.length--;否则会出现负数
                 console.log(arr[arr.length-1])
              }
              console.log(arr)      结果:[]
    第三种方法:
         var arr=[1,2,3,4,5];
            arr.length=0;
            console.log(arr);     结果:[]
     
     注:数组被清空了,但是数组本身还在,只是元素没了。
        如果想要删除数组,要设置arr=null;
        如果数组元素是对象,则要先设置对象=null,然后arr=null;因为对象具有引用地址;
       

    5.截取数组

            var arr=[1,2,3,4,5];      //从下标0开始到该长度截取下来
            arr.length=4;
            console.log(arr)

    四.遍历数组

    1)for  遍历

            var arr=[1,2,3,,4,null,5,6];
            arr.a=10;
            for(var i=0;i<arr.length;i++){     
                console.log(i,arr[i])       
            }
        结果:0 1 2 3 4 5 6 7 1,2,3,undefined,4,null,5,6 //没有打印属性 arr.a

    2)for  in 遍历

       var arr=[1,2,3,,4,null,5,6];
       arr.a=10;     
       for(var prop in arr){
                console.log(prop,arr[prop])   
            }
    结果: 0 1 2 4 5 6 7 a 1 2 3 4 null 5 6 10 //没有打印undefined

    两种方法的总结:

    for遍历: 按照下标进行遍历,可以遍历出来undefined,结果是数值型

        但是遇见arr.a这种可枚举属性时,就不能遍历

    for  in 遍历:  按照属性和属性值进行遍历,所以不能遍历出没有属性值的undefined  ,结果是字符串型

          但是遇见arr.a这种可枚举属性时,可以遍历。

  • 相关阅读:
    [9.运算符] 零基础学python,简单粗暴
    [8.转义字符&占位符] 零基础学python,简单粗暴
    [7.程序错误] 零基础学python,简单粗暴
    [6.注释与引号] 零基础学python,简单粗暴
    [5.数据类型] 零基础学python,简单粗暴
    国内的镜像网站大全
    mysql --好用又不贵的函数
    django--dos命令行项目创建未成功错误
    python-----拓展包下载地址
    python----列表转字典
  • 原文地址:https://www.cnblogs.com/94-Lucky/p/13257813.html
Copyright © 2020-2023  润新知