zoukankan      html  css  js  c++  java
  • javascript_数组

    数组(array)是按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表示。
    
    var arr = ['a', 'b', 'c'];
    
    var arr = [
      {a: 1},
      [1, 2, 3],
      function() {return true;}
    ];
    
    arr[0] // Object {a: 1}
    arr[1] // [1, 2, 3]
    arr[2] // function (){return true;}
    上面数组arr的3个成员依次是对象、数组、函数。
    
    如果数组的元素还是数组,就形成了多维数组。
    
    var a = [[1, 2], [3, 4]];
    a[0][1] // 2
    a[1][1] // 4
    
    
    
    删除数组
    
    
    var arr = [ 'a', 'b', 'c' ];
    arr.length // 3
    
    arr.length = 2;
    arr // ["a", "b"]
    
    清空数组的一个有效方法,就是将length属性设为0。
    
    var arr = [ 'a', 'b', 'c' ];
    
    arr.length = 0;
    arr // []
    
    
    
    检查某个键名是否存在的运算符in,适用于对象,也适用于数组
    var arr = [ 'a', 'b', 'c' ];
    2 in arr  // true
    '2' in arr // true
    4 in arr // false
    
    注意,如果数组的某个位置是空位,in运算符返回false。
    
    var arr = [];
    arr[100] = 'a';
    
    100 in arr // true
    1 in arr // false
    
    
    
    for...in 循环和数组的遍历
    for...in循环不仅可以遍历对象,也可以遍历数组,毕竟数组只是一种特殊对象。
    
    var a = [1, 2, 3];
    
    for (var i in a) {     // 记住 array  还是 object {} 类型,因此取值 a[i]  ,i 是键名
      console.log(a[i]);
    }
    // 1
    // 2
    // 3
    
    但是,for...in不仅会遍历数组所有的数字键,还会遍历非数字键。
    var a = [1, 2, 3];
    a.foo = true;
    
    for (var key in a) {
      console.log(key);
    }
    // 0
    // 1
    // 2
    // foo
    
    数组的遍历可以考虑使用for循环或while循环。
    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 i = a.length;   //逆向遍历
    while (i--) {
      console.log(a[i]);
    }
    
    
    数组的forEach方法,也可以用来遍历数组,详见《标准库》的 Array 对象一章
    
    var colors = ['red', 'green', 'blue'];
    colors.forEach(function (color) {
      console.log(color);
    });
    // red
    // green
    // blue
  • 相关阅读:
    网站访问量和服务器带宽的选择
    PHP实现四种基本排序算法
    常用的PHP排序算法以及应用场景
    常见的mysql数据库sql语句的编写和运行结果
    MyBatis拦截器:给参数对象属性赋值
    《自律让你自由》摘要
    Java JDK1.5、1.6、1.7新特性整理(转)
    人人都能做产品经理吗?
    Windows下查询进程、端口
    一语收录(2016-09-18)
  • 原文地址:https://www.cnblogs.com/zy09/p/14340676.html
Copyright © 2011-2022 走看看