JavaScript 循环结构 for/in 语句
■知识点
for/in语句是for语句的一种特殊形式。其语法格式如下:
for ( [var] variable in <object | array> )
statement
variable表示一个变量,可以在其前面附加var语句,用来直接声明变量名。in后面是一个对象或数组类型的表达式。在遍历对象或数组过程中,把获取的每一个值赋值给variable。
然后,执行statement语句,其中可以访问variable来读取每个对象属性或数组元素的值。执行完毕,返回继续枚举下一个元素,周而复始,直到所有元素都被枚举为止。
注意:
■实例设计
【示例1】下面的示例使用for/in语句遍历数组,并枚举每个元素及其值,效果如图所示。
var a = [1,true, "0", [false], {}]; //声明并初始化数组变量
for(var n in a){ //遍历数组
document.write( "a[" + n + "] = " + a[n] + "<br>");//显示每个元素的值
}
【示例2】在下面的示例中,定义一个对象0,设置3个属性,然后使用for/iii迭代对象属性,把每个属性值寄存到一个数组中。
var o ={ x : 1, y : true, z : "true"}, //定义包含3个属性的对象
a = [], //临时寄存数组
n = 0; //定义循环变量,初始化为0
for(a[n ++ ] in o); //遍历对象o,然后把所有属性都赋值到数组中
其中,”for(a[Tl++]in0);"语句实际上是一个空的循环结构,分号为一个空语句。
【示例3】for/in适合枚举不确定长度的对象。在下面的示例中,使用for/iii读取客户端document 对象的所有可读属性。
for(var i = 0 in document){
document.write ("document. "+i+"="+document[i] +"<br />");
}
【示例4】for/in能够枚举可枚举的属性,包括原生属性和继承属性。
Array, prototypes = "x"; //自定义数组对象的继承厲性
var a = [1,2,3]; //定义数组对象,并赋值
a.y = "y"; //定义数组对象的额外属性
for (var i in a) { //遍历数组对象a
document. write ( i+": " + a[i] + "<br />");
}
在上面的示例中,共获取5个元素,其中包括3个原生元素,1个是继承的属性x和1个额外的属性y。
如果仅想获取数组a的元素值,只能使用for循环结构。
for(var i = 0; i <a.length ; i ++ )
document.write( i + ":" + a[i] + "<br />");
点击加载更多评论>>