javascript循环的嵌套及遍历循环
1.遍历循环
遍历循环作用就是用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作);
语法:
for(var 变量名 in 对象或数组名){
//在此执行代码
}
<script>
//把str的每一个字符输出出来;
var str = "abcdefghyjk";//str伪数组
for(var key in str){//key表示数组的下标
console.log(str[key]);//输出str[key]的数,比如key=0,str[0]是a
}
</script>
2.循环的嵌套
循环的嵌套就是,循环里面还可以在里嵌套循环;
语法:
for(表达式1;表达式2;表达式3){
for(表达式1;表达式2;表达式3){//这里也可以嵌套其他循环比如while循环和do.while循环
}
}
示例:
<script>
//九九乘法表
for(var i = 1; i < 10; i++){
document.write("<br/>"); //换行
/*第一遍循环 i = 1; i<10成立 执行循环
j = 1; j <=i 成立 执行循环
sum = 1 * 1 ;
然后在 j++ j=2 ,j <=i 不成立 ,跳出循环
i++; i = 2 ; i <10 成立 ,执行循环
此时的j 还是从 j = 1 开始循环 , j <= i 成立
sum = 1 * 2;
然后j++ ;j = 2 j < = i 成立 执行循环
sum = 2 * 2 ;
以此类推。
*/
for(var j = 1;j <= i; j++ ){//要注意这的变化,外面for循环要执行一次的时候,这里的for循环的j都是从头开始执行;
var sum = i * j;
document.write(j + "*" + i + "=" + sum + " ");
}
}
</script>
练习:
<script>
//输一个数求他的质因数,例如:90=2*3*3*5
function fenjie(a){
var arr = []; //空数组
var b = a; //因为a 后面的数值会变,所以在这里先给b赋值等于a ;b= 90
for (var i = 2; i <= a; i++) {
// 第一次循环i = 2 ; i < = a (90) 成立执行
// i++ i= 3 ;
while (a % i == 0) {
//第一次循环 90 % 2 == 0 45 = 90 / 2 a = 45
//第二次循环 45 % 2 余 1 不成立 ,不循环 45 % 3 == 0 15 = 45 / 3 a =15
// 再次循环 15 % 3 == 0 5 = 15 / 3 a= 5 因为此时的 a= 5 ,5 只能余5跟1 == 0 所以后面 直到i= 5 成立
a = a / i;
arr.push(i);//从数组里添加i i = 2 ; 3 ; 3; 5 最后arr为:[2,3,3,5]
}
}
return b + "=" + arr.join(" * ");
}
console.log(fenjie(90));
</script>