<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
}