zoukankan      html  css  js  c++  java
  • JavaScript内置对象-Array

    ▓▓▓▓▓▓ 大致介绍

      除了Object之外,Array类型恐怕就是JavaScript种最常用的类型了,JavaScript中的数组与其他语言中的数组有很大的区别,例如,数组的每一项可以存放任何值,并且数组的大小事可以动态调整的

    ▓▓▓▓▓▓ 创建数组的两种方法

      创建数组有两种方法:一是用构造函数,二是用对象字面量的方法

      构造函数方式

      使用Array构造函数

    var colors = new Array();

      创建一个含有二十项的数组

    var colors = new Array(20);

      创建一个包含三项的数组

     var colors = new Array("pink","black","white");

      对象字面量方式

      数组字面量由一对包含数组项的方括号表示

     var colors = ["red","blue","green"];

    ▓▓▓▓▓▓ length属性

      JavaScript数组中的length是没有上界的,如果用大于当前length值的数字作为下标来储存值,那么数组就会被扩充来容纳这个元素。

    var empty = [];
    empty.length;    //0
    empty[100] = 'QQQ';
    empty.length;    //101
    //[]后置下标运算符把它所包含的表达式转换成一个字符串,如果该表达式有toString方法,就使用该方法的值
    empty['100']; //QQQ

      如果把length设小将导致所有下标大于等于新length的属性被删除

    var numbers = [
    'zero','one','two','three','false','12'
    ];
    numbers.length = 2;
    console.log(numbers);    //["zero", "one"]

    ▓▓▓▓▓▓ in运算符

      检查某个键名是否存在的in运算符,也可以适用于数组

    var myArray = [1,'2','name','23e'];
    
    0 in myArray //true
    2 in myArray //true
    4 in myArray //false

      注意:如果某个位置的值为0,也会返回false

    var a = [];
    a[100] = 1;
    a[3] in myArray; //false

    ▓▓▓▓▓▓ 数组的遍历

      数组的遍历通常是用for或者while循环,并不推荐for..in循环

    var a = [1, 2, 3];
    
    // for循环
    for(var i = 0; i < a.length; i++) {
      console.log(a[i]);
    }
    
    // while循环
    var i = 0;
    while (i < a.length) {
      console.log(a[i]);
      i++;
    }
    
    var l = a.length;
    while (l--) {
      console.log(a[l]);
    }

      还有一种遍历方法就是使用forEach(),在后面会讲到

    ▓▓▓▓▓▓ 数组的空位

      当数组的两个逗号之间没有任何值,那么这个数组就有空位

      数组的空位是不会影响length属性,并且访问空位会返回undefined,使用delete删除数组元素,会返回空值

    var myArray = [1,'2',,,];
    
    console.log(myArray.length); //4
    console.log(myArray[3]); //undefined

      数组的某个位置是空位,与某个位置是undefined,是不一样的。如果是空位,使用数组的forEach方法、for...in结构、以及Object.keys方法进行遍历,空位都会被跳过

    var a = [, , ,];
    
    a.forEach(function (x, i) {
      console.log(i + '. ' + x);
    })
    // 不产生任何输出
    
    for (var i in a) {
      console.log(i);
    }
    // 不产生任何输出
    
    Object.keys(a)
    // []

      如果某个位置是undefined,遍历的时候就不会被跳过。

    ▓▓▓▓▓▓ 数组方法

      我的这这篇博客详细的写了有关数组的方法,这里就不在重复http://www.cnblogs.com/qqandfqr/p/5558199.html

    参考资料:

          阮一峰JavaScript标准参考教程(alpha)-语法-数组

          JavaScript语言精粹第六章

          JavaScript高级程序设计(第三版)第五章 Array类型

      

      

  • 相关阅读:
    javascript中的对象创建与继承
    Requirejs快速使用
    HTML5服务器推送事件
    使用html+css实现三角标示符号
    thinkphp结合bootstrap打造个性化分页
    angularjs学习笔记3-directive中scope的绑定修饰符
    angularjs学习笔记2—运行phonecat项目
    grunt-contrib-qunit安装过程中phantomjs安装报错问题解决
    angularjs学习笔记1-angular总体简介及其特点
    Mybatis详细配置过程
  • 原文地址:https://www.cnblogs.com/qqandfqr/p/6442214.html
Copyright © 2011-2022 走看看