javascript中的数组对象

    1.定义javascript

    要了解数组对象,首先咱们先要了解什么是数组。所谓数组,就是相同数据类型的元素,按必定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,而后用编号区分他们的变量集合,这个名字称为数组,编号称为下标。java

    首先咱们要定义一个数组,可是如何去定义数组呢,在JavaScript中定义数组的方法不少,经常使用的四种方法以下所示:数组

    方法一    :函数

var array = new Array();
array[0] = 1;
array[1] = 2;
array[2] = 3;

    方法二:测试

var array = new Array(3);
array[0] = 1;
array[1] = 2;
array[2] = 3;

    方法三:this

var array = new Array(1,2,3);

    方法四:prototype

var array = [1,2,3]

    针对于上面的四种方法,你们经常使用的为方法四。code

    2.操做对象

    定义好一个数组以后,咱们要操做数组中的元素,咱们应该如何去操做呢,好比说如何设置固定位置的元素的值,如何添加元素,如何移除元素呢。其实对于JavaScript对于数组的,也就是array 的操做的方法仍是很简单的。索引

咱们给Array中的固定位置的元素赋值,能够经过数组名和下标进行赋值,以下。

var a = new Array(4);
a[0] = 1, a[1] = 2, a[2] = 3, a[3] = 4;
console.log(a);

  对于上面的输出结果为,[1,2,3,4];

  那么不少人就会以为,对于上面的数组咱们给第5个元素赋值,会不会出问题,如a[5]=6,;这样的赋值,其实对于JavaScript来讲,这样赋值其实也是能够, 咱们定义了一个数组的大小后,其实仍是能够对数组的大小进行自动的调整。

  对于js的元素添加,一般使用一个push来进行添加的。

var array = new Array();
array.push(1)
console.log(array);

  经过上面的方法的,能够对数组中添加元素,这样的添加方法。

  而后咱们当咱们但愿移除数组中的一个元素的时候,此时的,咱们能够经过Array.pop()函数来对数组中的元素进行移除。具体的操做以下所示

内置函数:

    你们都知道,在js中,Array是js一个内置对象,其内置有部分的函数,这些函数供咱们使用,相对来讲是比较方便的。

concat,constructor,entries,every ,filter ,forEach ,hasOwnProperty ,indexOf ,isPrototypeOf ,join ,keys ,keys ,lastIndexOf ,length,map ,pop ,propertyIsEnumerable ,push ,reduce ,reduceRight ,reverse ,shift ,slice ,some ,sort ,splice ,toLocaleString ,toString ,unshift ,valueOf ,toString

  对于上面那么多的内置函数,其实咱们经常使用也并非不少,这里就不进行一一介绍了,这边就对其中个别的函数进行介绍

concat:连接,因为javascript中的变量属于弱变量,因此任意两个array都是能够进行连接的,具体的连接实例以下所示:

var a = [1,2,3,4], b = ['a','b','c'];
var c = a.concat(b);
console.log('a =' + a.join(','));
console.log('b =' + b.join(','));
console.log('c =' + c.join(','));
输出结果为  :
a =1,2,3,4
b =a,b,c
c =1,2,3,4,a,b,c

    其实经过concat进行数组链接的时,原来的数组并无发生变化,只是返回的结果进行了变化。因此这个是须要注意的一个点。

every:其中这个其实就是对数组进行一个简答的遍历,而后针对这种状况,来进行的操做,下面给出了一个关因而every的一个使用方法:

var arr:Array = [15,7,12,15];
var testEvery1:Boolean = arr.every(isNum);
var testEvery2:Boolean = arr.every(isThanTen);
trace(testEvery1);
//true
trace(testEvery2);
//false
var testSome1:Boolean = arr.some(isThanTen);
trace(testSome1);
//true

//测试函数

//是不是数字
function isNum(item:*,index:int,arr:Array):Boolean
{
    return item is Number;
}


//是否大于10
function isThanTen(item:*,index:int,arr:Array):Boolean
{
    return item>10;
}

    固然针对于every的使用,在实际的应用中咱们用的并非不少。

    indexOf:查找当前的元素所在的位置的索引。具体的若是不存在则返回-1.若是存在,则返回相应的索引。

var a =[1,2,3,4,5,6,7];
console.log(a.indexOf(3));

    输出的结果为2,也就是3的索引,这个索引从0开始进行计数。因此这个还算是比较容易理解的。

    join:是将数组中的各个元素进行tostring后进行连接,连接符就是join中的内容,若是join中的参数不存在则连接符为空,其返回的结果为字符串。

    pop:这是一个从数组中取出元素的函数,

    push;这个函数是向数组中添加一个元素的

    length:得到数组长度的函数,

对于array数组,咱们还会常常但愿可以使用其中的一个方法,就是移除数组中的某个元素,以前都是本身百度,而后会百度到这样的一个方法

// 添加array的remove方法
    Array.prototype.remove = function (dx) {
        if (isNaN(dx) || dx > this.length) {
            return false;
        }
        for (var i = 0, n = 0; i < this.length; i++) {
            if (this[i] != this[dx]) {
                this[n++] = this[i]
            }
        }
        this.length -= 1;
    }

   后来在作东西的时候我又碰见这样的的一个方法,那就是splice,这个方法,咱们须要传两个参数,第一个参数就是要移除的元素的开始位置,第二个参数就是,移除的个数,若是第二个参数不传的话,则移除从第一个参数的位置,到数组结尾的全部元素,并将移除的内容返回出来。

var arr = [1,2,3,4,5,6];
var arr1 = [1,2,3,4,5,6];
var arr2 = [1,2,3,4,5,6];

arr.splice(1,1); // 返回结果为[2], 移除后,arr = [1,3,4,5,6];
arr.splice(1,2); // 返回结果为[2,3] , 移除后arr1 = [1,4,5,6];
arr.splice(1);   // 返回结果为[2,3,4,5,6], 移除后的结果为: [1]

上面的则是咱们经常使用的remove的内容    

相关文章
相关标签/搜索