zoukankan      html  css  js  c++  java
  • JavaScript Array 的学习

    首先创建数组

    1     var empty = [];//创建一个空的数组;
    2     var diffType = [1,'a',2.3,{},[4,5],,];//创建一个包含不同类型的数组
    3     var undef = [,,]//创建一个空元素数组,注意这里数组的长度是2,不是3.JavaScript数组允许最后多一个逗号。但是在IE678长度是3.
    4     var instance = new Array();//当然也可以用Array类创建一个数组,效果和[]一样。

    读写数组元素

    1     var b = [1,null,2,,3,undefined,6];//定义一个数组
    2     b[0];//读数组的第一个元素
    3     b[0] = 100;//写数组的第一个元素,数组的下标可以是一个表达式
    4     b[12.34] = 1234;//数组的下标可以不是一个整形数字,此时会将12.34作为一个属性名称,为b定义一个属性
    5     b["12"] = 12;//当数组的下标是一个可以直接转化成整形数字的字符串时,就像当于写b[12] = 12,数组的length就成13了
    6     b["13.00"] = 13;//当不能直接转化成正整数时,依然作为属性名处理
    7     b[14.00] = 14;//可以直接转化成正整数,就相当于b[14] = 14,此时b.length = 15;
        var x = [,,,];//在IE9,10长度为3,IE8极更早的版本长度为4
    var y = new Array(3);//注意:数组x, y 是有区别的。x,y都表示定义了一个长度为3的数组,但是x的三个元素值都为undefined,y的三个元素都没有值。但是表现是一样的。
    console.log(0 in x);//false
    console.log(0 in y);//false

     数组的一些方法

    push(p1,p2,...)在数组的末端添加元素,可以一次添加多个

    pop()移除并返回最后一个数组元素

    delete()将数组中的制定元素置为undefined,并不影响length属性。

    join(p)将数组转化为字符串,用p分割。注意该方法会将递归内嵌的数组元素,一次调用toString()方法。

    1 var a = [1,null,[10,12,[23,25]],2,,3,undefined,6];
    2 console.log(a);//[1, null, Array[3], 2, , 3, undefined, 6]
    3 console.log(a.join());//"1,,10,12,23,25,2,,3,,6"
    4 console.log(a.join(", "));//"1, , 10,12,23,25, 2, , 3, , 6"

    reverse()反转数组

    sort(f(a,b))如果没有参数,就按照字符顺序排序。undefined元素会排在最后。f是一个函数,用于定义排序规则。f返回值<=0,a在b前,否则b在a前。

    concat()返回组合后的数组,但是并不改变原有数组。调用方法如下

    1 var b = [1,2,3];
    2 console.log(b.concat(100,101));//[1, 2, 3, 100, 101] 
    3 console.log(b.concat([100,101]));//[1, 2, 3, 100, 101] 
    4 console.log(b.concat([100,101],[102,103]));//[1, 2, 3, 100, 101, 102, 103]
    5 console.log(b.concat([100,101,[103,104]]));//[1, 2, 3, 100, 101, Array[2]]。并不会改变数组内的数组

    slice(startIndex [,endIndex])返回指定区间(左闭右开)的元素。

    1 var b = [1,2,3,4,5];
    2 console.log(b.slice(0,3));//[1, 2, 3]
    3 console.log(b.slice(3));//[4, 5]
    4 console.log(b.slice(7));//[] 
    5 console.log(b.slice(-3,-2));//[3]

    splice(startIndex [,lenth,p1,p2,p3,...]返回被截取的元素,原来的数组将被改变。

    1 var c = [1,2,3,4,5,6,7,8];
    2 console.log(c.splice(4));//[5, 6, 7, 8]
    3 console.log(c.toString());//[1, 2, 3, 4]
    4 console.log(c.splice(3,1,5,6,7,8));//[4]
    5 console.log(c);//[1, 2, 3, 5, 6, 7, 8]

    shift()删除数组的第一个元素。

    unshift(p1,p2,...)将参数添加在数组的开头。

    toString()将数组中的每一个元素调用toString方法。

  • 相关阅读:
    apex Error : Given no hashes to check 137 links for project 'pip': discarding no candidates
    源码编译pytorch-1.2.0
    proxychains
    git简单教程
    caffe ssd + cuda9.0
    ros+pcl error recoder
    硬盘挂载
    opencv3.4.1+ubuntu18.04+anaconda 源码编译
    从RocksDBStateBackend讲述Flink的State机制
    由Rocksdb状态后端引出的Tree的应用
  • 原文地址:https://www.cnblogs.com/zeq-jone/p/3732559.html
Copyright © 2011-2022 走看看