zoukankan      html  css  js  c++  java
  • JavaScript Array对象 知识点总结

    1 isArray方法

    该方法是Array对象的静态方法,用来判断一个值是否为数组,它可以弥补typeof运算符的不足。

    用法是Array.isArray(array实例)

    通用的判断对象数据类型的方法是Object.prototype.toString.call(obj) === "[object type]",

    比如 Object.prototype.toString.call([1,2,3]) === "[object Array]"

    2 Arry实例的方法

    toString:把数组转换为字符串,并返回结果。

    var arr = [1,2,3];
    arr.toString()//"1,2,3"

    上面可以看出一个小技巧:通过toString方法可以直接将数组分割为逗号链接的字符串,结果跟arr.join()差不多。


    push:向数组的末尾添加一个或更多元素,并返回新的长度。

    var arr = [1,2,3];
    arr.push.apply(arr, [4,5]);//[1,2,3,4,5]
    // arr.push.call(arr, [6,7])的结果呢?[1,2,3,4,5,[6,7]]

    你知道为什么上面的结果是[1,2,3,4,5]么?因为Function.prototype.apply方法的第二个参数是个数组或者类数组,我现在传的是个数组,apply方法会认为我要传二个参数,相当于是执行arr.push(4,5).


    join:把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

    大家知道通过call或者apply方法可以调用别的对象(比如Array)的方法,那么字符串对象也可以调用Array的join方法,看下面:

    var s = "mengxiang";
    [].join.call(s, "-") //"m-e-n-g-x-i-a-n-g"

    concat:连接两个或更多的数组,并返回结果。

    注意事项:当数组中包含对象时,新的数组中包含的是对象的引用,很多人称之为浅拷贝。

    var o = {a:1};
    var oldArray = [o];
    
    var newArray = oldArray.concat();//[{a:1}]
    o.a = 2;
    newArray; //[{a:2}]

    从上面的例子可以看到,当修改对象的成员的值时,newArray的值也随之改变了,可以验证我们的结论。


    slice:从某个已有的数组返回选定的元素,组成新的数组返回,不修改原数组

    小技巧:将类数组转化为数组,[].slice.call(arguments);


    sort:对数组的元素进行排序,默认是按照字典顺序排序

    arrs = [101,1001,10001,111]
    arrs.sort()//[10001, 1001, 101, 111]

    sort支持函数作为第一个参数,该函数本身又接受两个参数,表示进行比较的两个元素。如果返回值大于0,表示第一个元素排在第二个元素后面;其他情况下,都是第一个元素排在第二个元素前面。

  • 相关阅读:
    setUP和tearDown,setUpClass和tearDownClass
    执行代码提示:Ran 0 tests in 0.000s
    Python自动化测试执行用例
    Python+webdriver自动化脚本的封装调用
    SQL之INDEX
    SQL之WHERE,GROUP,HAVING,ORDER BY
    SQL之LIMIT
    python基础之字符编码、文件处理
    python基础之列表、元组、字典、布尔值、集合
    python基础之if条件判断、while循环及数据类型
  • 原文地址:https://www.cnblogs.com/mengxiang-1234/p/4676322.html
Copyright © 2011-2022 走看看