let example = {
a:20,
b:40,
c:60
}
for(let j=0,i in example){
console.log(example[i]*j);
j++;
}
为什么正常的for循环可以有多个变量声明,而for-in循环却不能?还是我做错了吗?
最佳答案
我能理解的沮丧,您使用相同的关键字,为什么它的行为不相似?但是我认为您应该这样考虑:
for是一种定义循环的方法,只要满足某些条件,就可以使用不同的方式定义该条件。
在常规for循环中,只要中间部分(条件)为true,就可以循环:for(let i = 0; i < 10; i++)
这类似于while循环的工作方式,但这是语法上的捷径:
let i = 0;
while (i < 10) {
i++;
}
因此,对于该对象中的每个属性,for..in是一个具有另一种条件的for循环,因此,只要您具有更多属性,它便会继续循环。
您也可以这样写:
const keys = Object.keys(example);
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
const value = example[key];
}
您还拥有for ... of,它循环遍历数组中的项,但这是以下方面的语法糖:
for(let i = 0; i < array.length; i++) { const item = array[i]; }
还请考虑do ... while循环如何类似于while循环,但规则和行为略有不同。与其对语法感到沮丧,不如尝试通过使代码少一些冗长的单词来了解它如何为您节省时间,但是要做到这一点,每种情况都需要有所不同。另一种选择是拥有很多语言关键字。
关于javascript - 为什么for-in循环不能有多个变量声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61532339/