• javascript Array对象基础


    感觉自己对Array对象总是有种朦胧的感觉,今天自己手写总结,加深一下印象。

     

    对于Array对象我的总结思想是:5法,3招,12

     

    1.声明5:只针对一维数组,当然还有二维三维,这里就不做解释了

    var a = new Array();

    var a = new Array; 

    var a = new Array(10);//创建Array对象,并指定数组中项的个数   

    var a = new Array("red","blue","green");

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

     

    2.属性3constructor,length,prototype

          constructor表示创建对象的函数。 constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。例如:

     

    = new String("Hi");
    if (x.constructor == String)
       
    // 进行处理(条件为真)。
    或 
    function MyFunc {
       
    // 函数体。
    }
    = new MyFunc;
    if (y.constructor == MyFunc)
       
    // 进行处理(条件为真)。

     

    Length表示数组的长度,有多少项。这个就不写示例了。

    prototype返回对象类型原型的引用。用 prototype 属性提供对象的类的一组基本功能。对象的新实例“继承”赋予该对象原型的操作。

    例如,要为 Array 对象添加返回数组中最大元素值的方法。要完成这一点,声明该函数,将它加入 Array.prototype, 并使用它。

     

    function array_max( ){
       
    var i, max = this[0];
       
    for (i = 1; i < this.length; i++)
       {
       
    if(max < this[i])
          max 
    = this[i];
       }
       
    return max;
    }
    Array.prototype.max 
    = array_max;
    var x = new Array(123456);
    var y = x.max( );

    该代码执行后,y 保存数组 x 中的最大值,或说 6。

    3.方法12式:concat 方法 | join 方法 | pop 方法 | push 方法 | reverse 方法 | shift 方法| unshift 方法| slice 方法| splice 方法| sort 方法| toString 方法| valueOf 方法

     

    //1.concat():返回一个新数组,这个新数组是由两个或更多数组组合而成的。

    var a1 = [1,2,3,4];

    var a2 = a1.concat("5",'6');

    alert(a2); 
    //结果:1,2,3,4,5,6

    //2.join():返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。

    var a1 = [1,2,3,4];

    var a2 = a1.join();

    var a3 = a1.join(",");

    var a4 = a1.join("|");

    alert(a2); 
    //结果:1,2,3,4

    alert(a3); 
    //结果:1,2,3,4

    alert(a4); 
    //结果:1|2|3|4

    //3.pop():移除数组中的最后一个元素并返回该元素。如果该数组为空,那么将返回 undefined。

    var a1 = [1,2,3,4];

    var item = a1.pop();

    alert(item); 
    //结果:4

    alert(a1);
    //结果:1,2,3

    //4.push():将新元素添加(追加)到一个数组中,并返回数组的新长度值。push 方法将以新元素出现的顺序添加这些元素。如果参数之一为数组,那么该数组将作为单个元素添加到数组中。如果要合并两个或多个数组中的元素,请使用 concat 方法。

    var a1 = [1,2,3,4];

    a1.push(
    5);

    a1.push(
    "6");

    alert(a1);
    //结果:1,2,3,4,5,6

    //5.reverse():返回一个元素顺序被反转的 Array 对象。 

    var a1 = [1,2,3,4];

    a1.reverse();

    alert(a1);
    //结果:4,3,2,1

    //6.shift():移除数组中的第一个元素并返回该元素。

    var a1 = [1,2,3,4];

    a1.shift();

    alert(a1);
    //结果:2,3,4

    //7.unshift():将指定的元素插入数组开始位置并返回该数组。

    var a1 = [1,2,3,4];

    a1.unshift(
    5);

    alert(a1);
    //结果:5,1,2,3,4

    //8.slice():返回一个数组的一段。a1.slice(start, [end]),slice 方法一直复制到 end 所指定的元素,但是不包括该元素。如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度。如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度。如果省略 end ,那么 slice 方法将一直复制到 arrayObj 的结尾。如果 end 出现在 start 之前,不复制任何元素到新数组中。

    var a1 = [1,2,3,4];

    var a2 = a1.slice(-1);

    var a3 = a1.slice(0,-1);

    var a4 = a1.slice(1);

    alert(a2);
    //结果:4

    alert(a3);
    //结果:1,2,3

    alert(a4);
    //结果:2,3,4

    //9.splice():从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。

    //arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])

    var a1 = [1,2,3,4];

    var a2 = a1.splice(1,0);

    var a3 = a1.splice(1,1);

    var a4 = a1.splice(1,1,"5");

    alert(a2);
    //结果:

    alert(a3);
    //结果:2

    alert(a1);
    //结果:1,5,4

    //10.sort():返回一个元素已经进行了排序的 Array 对象。 

    var a1 = [2,3,1,4,"b","a"];

    var a2 = a1.sort();

    alert(a2);
    //结果:1,2,3,4,a,b

    //11.toString():返回对象的字符串表示。

    var a1 = [1,2,3,4,"b","a"];

    var a2 = a1.toString();

    alert(a2);
    //结果:1,2,3,4,b,a

    //12.valueOf():返回指定对象的原始值。

    var a1 = [1,2,3,4,"b","a"];

    var a2 = a1.valueOf();

    alert(a2);
    //结果:1,2,3,4,b,a

     

    indexOf扩展:

    if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {   
     i 
    || (i = 0);   
     
    var length = this.length;   
     
    if (i < 0) i = length + i;   
     
    for (; i < length; i++)   
        
    if (this[i] === item) return i;   
     
    return -1;   
    };   
    function testIndexOf()   
    {   
    var a =[1,2,3,4];   
    alert(a.indexOf(
    3));   
    }

    <input type="button" value="测试获取数组下标" onclick="testIndexOf()" /

     

  • 相关阅读:
    爱奇艺笔试题 输出01020304... ...
    ThreadPoolExecutor 中为什么WorkQueue会在corePoolSize满了之后入队
    jvisualvm 的使用
    连续子数组的最大和
    最长连续子序列
    leetcode 需要了解的知识点储备
    java String
    mysql MVCC
    java 批量导出(zip文件)
    java 中接口调用
  • 原文地址:https://www.cnblogs.com/xiaopin/p/1878801.html
Copyright © 2020-2023  润新知