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