zoukankan      html  css  js  c++  java
  • javascript数组浅谈1

       最近心血来潮要开始玩博客了,刚好也在看数组这块内容,第一篇就只好拿数组开刀了,自己总结的,有什么不对的地方还请批评指正,还有什么没写到的方面也可以提出来我进行完善,谢谢~~

       首先,大概说说数组的基本用法。

       数组,即Array类型,是开发中最常用的类型之一,javascript中的数组和其他语言最大的区别就是每一项可以保存任何类型的数据,而且数组的大小是可以动态调整的,有点绕?看看代码吧

       1.数组的创建:

    var arr=new Array(20);
    var arr1=["小伞",1,true,undefined,[2,"王"],""]

    第一行用数组构造法创建了一个length值为20的数组,第二行用数组字面量表示法创建了一个多种数据类型并存的数组。

    第一行的方法有点小坑,括号里指定的是数组的长度,而不是数组第一个元素是20 ,要想创建有一个元素是20的这么一个数组,还是用字面量法创建吧。

    还有一个小坑,看代码

    var arr=[1,2,];
    var arr1=[,,,,,]

    第一行这句会在IE8以及之前版本中创建一个值分别为1,2,undefined的数组,其他浏览器会产生一个两项分别是1,2的数组

    第二行同样的可能会在不同浏览器上包含5项或者6项。(IE9以上修复了这个问题,但还是不推荐这种写法)

       2.数组元素的基本操作

    js的数组非常的灵活,拥有很多数组元素操作的方法,但也有一些小坑,比如:

    var arr=[];
    arr[0]=1;arr[1]=2;arr.push(3);  //arr=[1,2,3]
    arr[arr.length]=4; //arr=[1,2,3,4]
    arr.unshift(0); //arr=[0,1,2,3,4];
    delect arr[2]; //arr=[0,1,undefined,3,4]
    arr[0]=undefined //arr=[undefined,1,undefined,3,4]

    push()方法会给数组最后边添加一个元素,得到的值可以看注释,^_^

    也可以直接手动在数组下标拓展以为,如第三行,其实就相当于push(4);

    那如果想在数组元素最前边添加呢,别急,有unshift()方法。

    与此对应的有删除元素的pop()方法和shift()方法,分别和push(),unshift()对应,就不再赘述了。

    delect 运算符对数组的操作不会删除掉数组的元素,可以说是用undefined来占个位子,和直接赋值是一样的。

       3.稀疏数组

    稀疏数组是指数组的下标并不是从0开始,一般数组的长度要比元素的个数要多:

    var arr1=[undefined];
    var arr2=new Array(1);
    
    0 in arr1;        //true
    0 in arr2;        //false
    
    var arr3=new Array(100);
    arr3[99]="赋值";
    
    99 in arr3;        //true
    98 in arr3;        //false

    arr1中是因为数组第1列是有值的,虽然是undefined,arr2只是指定了数组长度,第1列还是没有值,所以用in语句会返回false。arr3中给第第100个元素赋值后检测是有值的,对其他列的key是没有影响的,所以还是返回了false。

      下次来写数组的一些操作方法。

       javascript数组浅谈2 http://www.cnblogs.com/wangxiaosan/p/5504687.html


  • 相关阅读:
    正经学C#_循环[do while,while,for]:[c#入门经典]
    Vs 控件错位 右侧资源管理器文件夹点击也不管用,显示异常
    asp.net core 获取当前请求的url
    在实体对象中访问导航属性里的属性值出现异常“There is already an open DataReader associated with this Command which must be
    用orchard core和asp.net core 3.0 快速搭建博客,解决iis 部署https无法登录后台问题
    System.Data.Entity.Core.EntityCommandExecution The data reader is incompatible with the specified
    初探Java设计模式3:行为型模式(策略,观察者等)
    MySQL教程77-CROSS JOIN 交叉连接
    MySQL教程76-HAVING 过滤分组
    MySQL教程75-使用GROUP BY分组查询
  • 原文地址:https://www.cnblogs.com/wangxiaosan/p/5501908.html
Copyright © 2011-2022 走看看