zoukankan      html  css  js  c++  java
  • JavaScript数组&类数组转换

    一、数组

    在JavaScript中数组可以容纳任何类型的值,可以是数字、字符串、对象、甚至其他数组(多为数组)

    var a = [1,'2',[3]];
    a.length;//3
    a[0];//1
    a[2];//[3]
    a[2][0];//3
    

    使用delete运算符可以将单元从数组中删除,但是单元删除后,数组的length属性并不会发生变化

        var a = [1,2,'3'];
        delete a[0];//返回ture
        //此时数组变成[empty,2,'3'];
        a[0];//返回undefined;
        a.length;//3
    

    稀疏数组:含有空白或空缺单元的数组

     var a = [];
     a[0] = 1;
     a[2] = [3];
     a[1];//undefined
     a.length;//3
    

    数组通过数字进行索引,但他们也是对象,所以也可以包含字符串键值和属性(但是并不计算在length数组长度内)

       var a = [];
       a[0] = 1;
       a['foobar'] = 2;
       a.length;//1;
       a.foobar ;//2
    

    类数组(一组通过数字索引的值)

    有时需要将类数组转换为真正的数组,一般通过工具函数(indexOf()、concat()、forEach()etc)来实现。
    例如: 一些DOM查询操作会返回DOM元素列表,它们并非真正意义上的数组,但十分类似。

    工具函数slice()经常被用于这类转换:

    
    function foo(){
        return Array.prototype.slice.call(arguments);
    }
    foo('bam','baz','bar');//['bam','baz','bar']
    

    ES6中的内置工具函数Array.from()也能实现这个功能

    var arr = Array.from(arguments);
    
  • 相关阅读:
    猫眼 top_100 爬取 ___只完成了第一页
    内涵段子——脑筋急转弯——spider
    django 常用 详解
    获取定位信息
    对AFNetworking的二次封装
    对UIImageView+WebCache的封装
    CoreText 实现图文混排
    剖析RAC中的@weakify、@strongify
    实现点击按钮旋转动画
    java面向对象编程思想的理解
  • 原文地址:https://www.cnblogs.com/angfl/p/10303394.html
Copyright © 2011-2022 走看看