在本章中,我们将学习一下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)
 


收藏
0个人 收藏

关注Joomla中国微信公众号,随时获得最新的Joomla新闻资讯!