( ! ) Warning: include(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in D:\www\up\js\array.php on line 14
Call Stack
#TimeMemoryFunctionLocation
10.0000365376{main}( )...\array.php:0

( ! ) Warning: include(http://pub.houheaven.com/Nav02/Nav_deep2.htm): failed to open stream: no suitable wrapper could be found in D:\www\up\js\array.php on line 14
Call Stack
#TimeMemoryFunctionLocation
10.0000365376{main}( )...\array.php:0

( ! ) Warning: include(): Failed opening 'http://pub.houheaven.com/Nav02/Nav_deep2.htm' for inclusion (include_path='.;C:\php\pear') in D:\www\up\js\array.php on line 14
Call Stack
#TimeMemoryFunctionLocation
10.0000365376{main}( )...\array.php:0

信息:原创2014-08-180 次阅读0 个评论

标签:后天堂向上,网站制作,自学教程,网站技术,javascript,javascript数组


基本操作

创建:var arr=[1,2,3,4];

输出:alert(arr);


内置属性和方法

属性

名称描述
length数组长度

方法

名称描述实例
.toString()将数组内容以字符串的形式输出

暂无

.valueOf()将数组内容以字符串的形式输出

暂无

.reverse()数组排序,由大到小

暂无

.sort()数组排序,由小到大

暂无

.join(str)修改数组元素默认分隔符(,),方法返回值是字符串,数组不变

实例

      var arr=[1,2,3,4];
      alert(arr.join("*"));		// 输出 1*2*3*4
      alert(arr.join("|"));		// 输出 1|2|3|4
      alert(arr.join("___"));		// 输出 1___2___3___4
      alert(arr);			// 输出 1,2,3,4
      
.push(value)栈方法(后进先出),在数组最后添加一个或多个元素,方法返回数组的最新长度

实例

      var arr=["a","b","c"];
      alert(arr);			// 输出 a,b,c
      alert(arr.push("d"));		// 输出 4
      alert(arr);			// 输出 a,b,c,d
      alert(arr.push("e","f"));		// 输出 6
      alert(arr);			// 输出 a,b,c,d,e,f
      
.pop()栈方法(后进先出),移除数组最后一个元素,方法返回移除的元素

实例

      var arr=["a","b","c","d"];
      alert(arr);			// 输出 a,b,c,d
      alert(arr.pop());			// 输出 d
      alert(arr);			// 输出 a,b,c
      alert(arr.pop());			// 输出 c
      alert(arr);			// 输出 a,b
      
.unshift()队列方法(先进先出),在数组最前添加一个或多个元素,方法返回数组的最新长度

实例

      var arr=["a","b","c"];
      alert(arr);			// 输出 a,b,c
      alert(arr.unshift("1"));		// 输出 4
      alert(arr);			// 输出 1,a,b,c
      alert(arr.unshift("2","3"));	// 输出 6
      alert(arr);			// 输出 2,3,1,a,b,c
      

注意:此方法在 IE 浏览器的低版本中不兼容,能添加元素,但无返回值。

.shift()队列方法(先进先出),移除数组最前一个元素,方法返回移除的元素

实例

      var arr=["a","b","c","d"];
      alert(arr);			// 输出 a,b,c,d
      alert(arr.shift());		// 输出 a
      alert(arr);			// 输出 b,c,d
      alert(arr.shift());		// 输出 b
      alert(arr);			// 输出 c,d
      
.concat()创建新数组,在当前数组后面添加若干元素或数组而形成新的数组,原数组不变

实例

      var arr1=[1,2,3];
      var arr2=arr1.concat(4,5);
      var arr3=arr1.concat([6,7]);
      alert(arr1);			// 输出 1,2,3
      alert(arr2);			// 输出 1,2,3,4,5
      alert(arr3);			// 输出 1,2,3,6,7
      
.slice(start,end)创建新数组,从当前数组中截取一部分元素创建新数组,原数组不变

实例

      var arr1=[1,2,3,4,5];
      var arr2=arr1.slice(2);
      var arr3=arr1.slice(2,4);
      alert(arr1);			// 输出 1,2,3,4,5
      alert(arr2);			// 输出 3,4,5
      alert(arr3);			// 输出 3,4
      
.splice(start,len,str)创建新数组,从当前数组中截取一部分元素创建新数组,原数组改变

实例

      // ================================ 删除用法 ===================================
      var arr1=[1,2,3,4,5];
      var arr2=arr1.splice(0);		// 全部截取
      alert(arr1);			// 输出 
      alert(arr2);			// 输出 1,2,3,4,5
      
      var arr1=[1,2,3,4,5];
      var arr2=arr1.splice(2);		// 如果只填一个参数,那么截取开始位置为0,所填参数为截取长度
      alert(arr1);			// 输出 1,2
      alert(arr2);			// 输出 3,4,5
      
      var arr1=[1,2,3,4,5];
      var arr2=arr1.splice(2,1);
      alert(arr1);			// 输出 1,2,4,5
      alert(arr2);			// 输出 3
      
      // ================================ 插入用法 ===================================
      var arr1=[1,2,3,4,5];
      var arr2=arr1.splice(2,0,"a");	// 第二参数(截取长度)为0,就是在插入用法
      alert(arr1);			// 输出 1,2,a,3,4,5
      alert(arr2);			// 输出 
      
      // ================================ 替换用法 ===================================
      var arr1=[1,2,3,4,5];
      var arr2=arr1.splice(2,1,300);	// 第二参数(截取长度)为1,就是在替换用法
      alert(arr1);			// 输出 1,2,300,4,5
      alert(arr2);			// 输出 3
      

常见问题

1. 数组的排序函数出错,如何解决?

数组的排序有时候并不能正确执行,比如下面的数组中出现了一位数与两位数共存的情况,这时候数组可能会按照字符串的比较进行排序,因此,数组的排序结果自然不是我们想要的。

var arr=[2,10,4,18,3];

alert(arr.sort());// 输出 10,18,2,3,4

alert(arr.reverse());// 输出 4,3,2,18,10

怎样解决这个问题呢?Javascript 开发文档给出了答案,那就是给排序函数添加回调函数,具体操作如下:

function Compare(v1,v2)

{

switch(true)

{

case v1<v2  : return -1; break;

case v1==v2 : return 0; break;

case v1>v2  : return 1; break;

}

}

 

var arr=[2,10,4,18,3];

alert(arr.sort(Compare));// 输出 2,3,4,10,18

alert(arr.reverse());// 输出 18,10,4,3,2



显示框架
top