javaScript中for...in用法

<pre name="code" class="html">/**
 * @author Administrator
 */
window.οnlοad= function (){
	var div =document.getElementById("inTest");
	div.οnclick= function (){
		forInFun();	
	}
}

function forInFun(){
	//1.测试一般数组数组
//	var arr = new Array("a","b","c");
//	for(var i in arr){
//		alert(i+":"+arr[i]);//获取的是下标值,根据索引获取值
//	}


	//2.测试带属性的数组(json格式数据)
//	var jnArr={a:"x1",b:"x2",c:"x3"};
//	for(var i in jnArr){
//		alert(i+":"+jnArr[i]);//获取的是键,即label值,原理相当于map的key,jnArr(i) 根据key获取value.
//	}
	
	
	//3.测试对象数组
	//这种情况下遍历对象数组,直接用下标去遍历,用for...in比较麻烦,不好使
	
/**
 * begin  来自:http://bbs.csdn.net/topics/100024990  theforever		
 *  var   boxs   =   document.getElementsByName( "inName "); 
 *  得到的:boxs={"length":2,"inName":object,"inName":object}
 *  for   (elm   in   boxs) 
 *  { 
 *     会列出各属性名称,即length,inName,inName
 *  } 
 *  而我们遍历它们时,采用的就是直接取它们的属性
 *    for(var i=0;i<boxs.length;i++){
 *	     boxs[i]  用下标取出数组元素的这个对象数组
 *	     其实就是length之后的部分:{"inName":object,"inName":object}
 *	    等价于用 boxs['inName'][i]  去取
 *	    所有的数组实际都是这种结构,包括普通的Array的实际结构,头一个是length,后面才是我们以为的"纯数组".
 *	
 *		  想想普通的数组,比如名为theforever_csdn的一个字串数组的"theforever_csdn.length"是哪里来的? 
 *	   只不过当我们用theforever_csdn[数字下标] 时,就已经如同theforever_csdn[""][数字下标]一样
 *	   去从length之后的"数据数组"(真实的数组结构可以叫作"结构数组")开始取值了.
 *   ;} 
 *  end	
 */

	var boxs=document.getElementsByName("inName");
//	for(var i=0;i<boxs.length;i++){
//		alert(boxs[i].value);
//	}

//	for(var i in boxs){
//		alert(boxs[i]);//等于boxs.length
//		break;
//	}
	
	
	//4.判断对象是否为数组的元素或者对象的属性。
	/**
	 * 格式:变量 in 对象
	 * 注意:
	 * 1) 当"对象"为数组时,"变量"指的是数组的"索引";
	 * 2) 当"对象"为对象时,"变量"指的是对象的"属性".
	 */
	var arr1=["tom","jerry","dog"];
	var result=("jerry" in arr1);
	var result1 =(1 in arr1);
	document.write(result+"<br/>");//false
	document.write(result1+"<br/>");//true
	
	
	var obj ={
		tom:"x",
		jerry:"y",
		dog:"z"
	};
	var result=("jerry" in obj);
	var result1 =(1 in obj);
	document.write(result+"<br>");//true
	document.write(result1+"<br>");//false
		
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值