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的内容
来源:oschina
链接:https://my.oschina.net/u/261347/blog/412413