javascript中的数组对象

主宰稳场 提交于 2020-03-26 04:48:27

3 月,跳不动了?>>>

    1.定义

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

    首先我们要定义一个数组,但是如何去定义数组呢,在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;

    方法三:

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

    方法四:

var array = [1,2,3]

    针对于上面的四种方法,大家常用的为方法四。

    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的内容    

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!