js 数组Array用法

标签: js 数组 array | 发表时间:2012-11-16 22:42 | 作者:sunboy_2050
出处:http://blog.csdn.net

<script type="text/javascript">

	var arr = new Array();
	arr[0] = "aaa";
	arr[1] = "bbb";
	arr[2] = "ccc";
	alert(arr.length);		//3
	
	arr.pop();
	alert(arr.length);		//2
	alert(arr[arr.length-1]);	//bbb
	
	arr.pop();
	alert(arr[arr.length-1]);	//aaa
	alert(arr.length);		//1


	var arr2 = new Array();
	alert(arr2.length);		//0
	
	arr2[0] = "aaa";
	arr2[1] = "bbb";
	alert(arr2.length);		//2
	
	arr2.pop();
	alert(arr2.length);		//1
	alert(arr2[arr2.length-1]);		//aaa
	
	/*
	arrayObj.slice(start, [end])  
	slice 方法返回一个 Array 对象,其中包含了 arrayObj 的指定部分。 
	slice 方法一直复制到 end 所指定的元素,但是不包括该元素。如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度。如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度。如果省略 end ,那么 slice 方法将一直复制到 arrayObj 的结尾。	如果 end 出现在 start 之前,不复制任何元素到新数组中。 
*/
	arr2 = arr2.slice(0, arr2.length-1);	
	alert(arr2.length);		//0
	arr2[0] = "aaa";
	arr2[1] = "bbb";
	arr2[2] = "ccc";
	arr2 = arr2.slice(0, 1);
	alert(arr2.length);		//1
	alert(arr2[0]);			//aaa
	alert(arr2[1]);			//undefined

	
	//shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
	var a = [1,2,3,4,5];
	var b = a.shift();
	alert(a + "; " + b); 	//a:[2,3,4,5]   b:1


	//unshift:将参数添加到原数组开头,并返回数组的长度.注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。
	var a = [1,2,3,4,5];
	var b = a.unshift(-2,-1);
	alert(a + "; " + b); 	//a:[-2,-1,1,2,3,4,5]   b:7


	//pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined
	var a = [1,2,3,4,5];
	var b = a.pop(); 
	alert(a + "; " + b); 	//a:[1,2,3,4]   b:5
	

	//push:将参数添加到原数组末尾,并返回数组的长度
	var a = [1,2,3,4,5];
	var b = a.push(6,7); 
	alert(a + "; " + b); 	//a:[1,2,3,4,5,6,7]   b:7
	

	//concat:返回一个新数组,是将参数添加到原数组中构成的
	var a = [1,2,3,4,5];
	var b = a.concat(6,7); 
	alert(a + "; " + b);	//a:[1,2,3,4,5]   b:[1,2,3,4,5,6,7]


	//splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,..., 返回的是删除项数组
	//在清空数组时,只需传递startIndex; 如果不删除所有元素,再传递deleteCount参数。
	//splice还具有先删除后添加的功能,即先删除几个元素,然后在删除的位置再添加若干元素,删除与添加的元素的个数没有必须相等,这时侯deleteCount也是要用到的。
	var a = [1,2,3,4,5];
	var b = a.splice(2,2,7,8,9); 	// 从下标2处开始,删除2量,并从2位置增加三项(7,8,9)
	alert(a + "; " + b);	//a:[1,2,7,8,9,5]   b:[3,4]
	
	var b = a.splice(0,1); //同shift
	alert(a + "; " + b);	//a:[2,7,8,9,5]   b:[1]
	

	var a = [1,2,3,4,5];
	a.splice(0,0,-2,-1); 
	var b = a.length;	//同unshift
	alert(a + "; " + b);	//a:[-2,-1,1,2,3,4,5]   b:[7]
	
	var b = a.splice(a.length-1,1);//同pop
	alert(a + "; " + b);	//a:[-2,-1,1,2,3,4]   b:[5]
	
	a.splice(a.length,0,6,7); 
	var b = a.length; //同push
	alert(a + "; " + b);	//a:[-2,-1,1,2,3,4,6,7]   b:[8]
	
	//reverse:将数组反序
	var a = [1,2,3,4,5];
	var b = a.reverse(); 
	alert(a + "; " + b);	//a:[5,4,3,2,1]   b:[5,4,3,2,1]

	//sort(orderfunction):按指定的参数对数组进行排序
	var a = [1,4,3,2,5];
	var b = a.sort(); 
	alert(a + "; " + b);	//a:[1,2,3,4,5]   b:[1,2,3,4,5]

	//slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组
	var a = [1,2,3,4,5];
	var b = a.slice(2,5); 
	alert(a + "; " + b);	//a:[1,2,3,4,5]   b:[3,4,5]

	//join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符
	var a = [1,2,3,4,5];
	var b = a.join("|"); 
	alert(a + "; " + b);	//a:[1,2,3,4,5]   b:"1|2|3|4|5"
	var b2 = a.join(); 
	alert(a + "; " + b2);	//a:[1,2,3,4,5]   b:"1,2,3,4,5"


	// 字符串处理函数
	function StringBuffer() {
		var arr = new Array;
		this.append = function(str) {
    		arr[arr.length] = str;
    		return this;
		};

		this.toString = function() {
    		return arr.join("|");	//把append进来的数组ping成一个字符串
		};
	}

	var strBuf = new StringBuffer();
	strBuf.append("1").append("2").append("3");	// strBuf.append(arg)
	strBuf.append("4");	
	strBuf.append("5");	
	alert(strBuf.append("6").append("7").append("8").toString());			// 1|2|3|4|5|6|7|8


	// 把数组转换成特定符号分割的字符串
	function arrayToString(arr, separator) {
		if(!separator) 
			separator = "";		//separator为null则默认为空
    	return arr.join(separator);
	}
	var arr = new Array(1, 3, 5);
	alert(arrayToString(arr, "="));		// 1=3=5

	// 查找数组包含的字符串
	function arrayFindString(arr, string) {
		var str = arr.join("");
    	return str.indexOf(string);
	}
	var arr = new Array(1, 3, 5);
	alert(arrayFindString(arr, 3));		// 1
	
</script>


参考推荐:

JS中数组Array的用法

js函数对象

js 函数调用模式小结


26个Jquery使用小技巧

jQuery(官方)


作者:sunboy_2050 发表于2012-11-16 22:42:13 原文链接
阅读:871 评论:0 查看评论

相关 [js 数组 array] 推荐:

js 数组Array用法

- - CSDN博客推荐文章
slice 方法返回一个 Array 对象,其中包含了 arrayObj 的指定部分. slice 方法一直复制到 end 所指定的元素,但是不包括该元素. 如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度. 如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度.

JavaScript中Array(数组)的属性和方法 .

- - BlogJava-首页技术区
Array只有一个属性,就是length,length表示的是数组所占内存空间的数目,而不仅仅是数组中元素的个数,在刚才定义的数组中,b.length的值为8. 数组的length属性是可写的,这是一个非常有意思的属性,我们可以通过这种方法来截取数组. //显示的结果是3,说明即使删除也无法改变数组的长度.

兩個 Ruby 建構 Array 和 Hash 的小技巧

- Sean Lee - ihower { blogging }
我想你可能寫過以下這樣的程式. 其中 params[:a] 可以只有一個元素,也可以是陣列. 但是為了接下來能夠處理,我們需要轉成陣列 array 變數:. 這裡我們手動判斷了 params[:a] 是不是陣列,實在是有點 ugly. 其實 Ruby 內建的 API 就可以支援下述寫法:. 無論 params[:a] 是陣列還是單一元素,Array(params[:a])會確保出來一定是陣列.

WebView JS 交互

- - ITeye博客
WebView加jquery做页面会怎么样呢. // 创建WebView对象. // 把programList添加到js的全局对象window中,. // 这样就可以使用window.programList来获取数据. * 定义js回调java函数. // 绑定键盘的向上,向下按钮事件触发相应的js事件.

JS游戏引擎

- 米随随 - HTML5研究小组
If you don’t have anything better to do and want to help fellow redditors interested in JS game dev out, feel free to fork the list and modify it as you like.

來源請求.js

- 红烧鲤鱼 - Blog: timdream
很早以前就想講了,但講了大概又會被戰. 相較於英文維基百科,中文維基百科在社會和歷史條目充滿了 systemic bias. 但是那些主觀論述又不是編輯者有意加進去的,而是某種編輯者存在的社會所給予的暗示(Inception?)與集體共識,而不是原本百科全書應該有的可驗證的事實. 因為是暗示又是共識,所以有自覺的百科編輯者反而是少數;中文維基只好長成現在這個樣子了.

Js删除节点

- - JavaScript - Web前端 - ITeye博客
 方式一:传this参数调用方法:.  方式二:js方法中通过选择器获取节点:. //此处删除的是a节点 }. 方式三:通过jQuery方式获取节点:(尚未测试,有待测试. 此处a标签传this到js中,js通过this(即a节点)取parent(即p节点). (1)p.remove();可直接删除整个p节点.

JS游戏引擎列表

- sku - 酷壳 - CoolShell.cn
这里有一个网址收集了关于JS游戏引擎开发库的一个列表,转过来. 关于使用JS和HTML5做的一些小游戏,可参见《HTML5 小游戏展示》. Name Latest Release License Type Notes The Render Engine 1.5.3 MIT 跨浏览器; 大规模 API; 开源. 2 gameQuery 0.5.1 CC BY-SA 2.5 和 jQuery 一起使用 gTile 0.0.1 Tile based.

Deck JS: HTML5 幻灯片

- L - LinuxTOY
Deck.js 是一组开源的 JavaScript 类库,方便使用现代的 HTML5/CSS3/JS 技术创建幻灯片. 该软件十分适用于开源项目介绍,交互式的方式比单纯的文字说明更简洁易懂. 不废话了,赶紧前往该项目主页去体验 HTML5 时代的幻灯片吧. 分类: Productivity |. 收藏到 del.icio.us |.

JS三维模型库 Three.js

- Le - 开源中国社区最新软件
Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象. 你可以在它的主页上看到许多精采的演示. 不过,这款引擎目前还处在比较不成熟的开发阶段,其不够丰富的 API 以及匮乏的文档增加了初学者的学习难度(尤其是文档的匮乏) 演示:http://mrdoob.github.com/three.js/.