在本章中,我们将学习一下Js操作数组的相关
操作。经常将PHP数组的处理和js的数组的处
理,希望通过这个学习,能够记住。
解决第一个问题 :如何在js中定义一个数组:
var array = [1,2,3,4,5];
这就是定义了5个元素的数组。
var arrayObj = new Array();//创建了一个数组
var arrayObj = new Array(SIZE);//创建了一个数组 并且指定长度,注意不是上限,是长度。
var arrayObj = new Array(element0,element1……);
要说明的是,虽然第二种方法创建了数组并且也指定了长度,但是实际上所有情况下数组都是变长的。
解决第二个问题:如何访问数组中的元素
如果我要访问上面的数组中的第一个元素的值,代码如下:
alert(a[0]); 这样就会弹出一个提示框 显示1.这段代码说明,在js中数组的下标是从0开始的。访问js中的数组,和c语言中数组访问是一样的。只需要利用[]和偏移量就可以了。
解决第三个问题:这道数组的长度
在js中数组是用对象的方法来操作的。数组的长度是类的一个属性。因此想知道一个数组的长度十分的简单,只需要用alert(a.length)就可以搞定了。
解决第四个问题:如何遍历一个数组
当然可以用c语言中的方法来做。直接写一个循环就可以搞定。代码如下:
for(var i=0;i<a.length;i++)
{
alert(a[i]);
}
特殊操作
基本的四个问题都搞定了,那么下面就是一些特殊功能了,当然这些功能的主要目的就是让我们用这个对象更加方便的。
shift方法:删除原先数组第一项,并返回删除元素的值;如果数组为空则返回undefined.
举例:
var a=[1,2,3,4,5];
var b=a.shift();
结果: b=1 a:[2,3,4,5];第一项已经被移走了
unshift方法:将参数添加到数组的开头。这个功能刚刚和shift相反、返回数组的长度
举例:
var b= a.unshift(6);
结果:b=6 a[6,1,2,3,4,5];在数组的开头添加了一项。
var b= a.unshift(6,7,8);
结果:b=8 a[6,7,8,1,2,3,4,5];在数组的开头添加了参数的数值。
pop:删除原数组最后一项。并且返回删除元素的值。如果数组为空,则返回undefined.
举例:
var b= a.pop();
结果 b=5 a:[1,2,3,4];最后一向已经被移除了
push:将参数添加到原数组的末尾,并且返回数组的长度
var b=a.push(7);
结果:b=6 a:[1,2,3,4,5,7];已经在最后面添加了一项
var b=a.push(7,8,9);
结果:b=8 a:[1,2,3,4,5,7,8,9];已经在最后面添加参数的数值。以参数顺序
join(separator):该函数可以将数组组成一个字符串然后用separator进行分割。非常的有趣:
举例:
var b= a.join();
结果:b="1,2,3,4,5";默认的分隔符为“,”;
var b= a.join('|')
结果 : b="1|2|3|4|5";因为分隔符为"|"
slice(start,end):这个函数的功能是从数组中提取数据的一部分。这一部分就是[start,end)这里的start end都是下标。
举例:
var b=a.slice(2,4);
结果:b=[3,4];b也是一个数组
sort(orderfunction):这个函数的功能是按照指定的函数对数组进行排序
举例:
var a=[1,3,2,5,4];
var b=a.sort();
结果:
a:[1,2,3,4,5];b:[1,2,3,4,5];因为默认情况下是按照升序排列的。
注意 原始数据已经发生了改变。
reverse:将数组反序
举例:
var b=a.reverse();
结果:
b:[5,4,3,2,1] a:[5,4,3,2,1].注意:a数组的值也发生了改变
concat:返回一个新的数组。将参数添加到原数组的末尾
举例:
var b=a.concat(6.7);
结果:
a:[1,2,3,4,5],b:[1,2,3,4,5,6,7].注意 a数组是没有发生改变的。
splice(start,deleteCount,varl,var2……):这个函数的功能是最强的。他的功能是从start开始,删除delteCount项,然后从start开始添加varl article.
举例:
var b=a.splice(2,2,2,7,8,9);
结果:
b:[2,2] a:[1,2,7,8,9,4,5]
数组是JavaScript提供的一个内部对象,他是一个标准的集合。由于JavaScript的语言特性,我们可以向通用对象动态添加和删除属性。所以Object也可以看成是JS的一种特殊的集合。
prototype属性
返回对象类型原型的引用。prototype属性是object共有的。
objectName.prototype.
prototype属性提供对象的类的一组基本功能。对象的新的实例继承赋予该对象原型的操作。
给数组对象添加返回数组中最大值的方法。要完成这一点,声明一个函数,将它加入Array.prototyope,并使用它。
Function array_max()
{
var max =0;
for(var i=0;i<this.length;i++)
{
if(max <this[i])
{
max = this[i];
}
}
return max;
}
Array.prototype.max = array_max;
var x = new Array(1,2,3,4,5,6);
var y = x.max();
执行结果:
y = 6;
还有一个构造属性。这个不是很了解。
于2014-08-25重新阅读,感觉有点不一样。js中的数组是一个对象。用对象加方法的操作来使用。而PHP的数组就是一个容器。我们应该用操作这个容器的方法来操作。例如 计算数组的长度。js中用array.length 而php中用count(a)