JavaScript 使用 for in 语句来遍历对象的属性和方法。for in 语句循环遍历 JavaScript 对象,每循环一次,都会取得对象的一个属性或方法。数组中使用 for...in 声明来循环输出数组中的元素。
语法:
for(valueName in ObjectName){
// 代码
}
其中,valueName 是变量名,保存着属性或方法的名称,每次循环,valueName 的值都会改变。
遍历数组中的元素:
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"
for (var x in mycars)
{
document.write(mycars[x] + "<br />")
}
输出结果:
Saab
Volvo
BMW
遍历对象中的元素:
var zhangsan={}
zhangsan.name = "张三";
zhangsan.sex = "男";
zhangsan.say = function(){
return "嗨!大家好,我来了。";
}
zhangsan.contact = {
tel : "029-81895644",
qq : "1370753465",
email : "[email protected]"
}
var strTem=""; // 空字符串,作为临时变量
for(value in zhangsan){
strTem+=value+':'+zhangsan[value]+"\n";
}
document.write(strTem);
输出结果:
name:张三
sex:男
say:function(){
return "嗨!大家好,我来了。";
}
contact:[object Object] //对象
遍历字符串:给定任意一个字符串,使用 for in 语句来统计字符出现的个数:
function charNum(str){
var charObj={} //创建一个空对象
for(i=0,len=str.length;i<len;i++){
if(charObj[str[i]]){ //str[i]为key
charObj[str[i]]++; //charObj[str[i]]为value
}else{
charObj[str[i]]=1;
}
}
var strTem=""; // 临时变量
for(value in charObj){
strTem+='"'+value+'"的个数:'+charObj[value]+'\n';
}
return strTem;
}
document.write(charNum("11,23"));
输出的结果:
"1"的个数:2
"2"的个数:1
"3"的个数:1
","的个数:1