a直接看代码,比如有一个数组;
const fruits=['Apple','Mango','Orange','Banana'];
循环这个数组有四种方式:
(1)for循环
for(let i =0; i < fruits.length; i++){
console.log(fruits[i]);
}
缺点:把循环分成三部分,并且要获取值必须以方括号的方式获取ruits[i]。
(2)数组的forEach
fruits.forEach((friut)=>{
console.log(friut)
})
运行结果如下:
缺点:不能终止或跳过循环。
(3)for in 循环
for(let friut in fruits) {
console.log(friut )
}
运行结果:
缺点:循环的结果是属性名,不是属性值 获取属性值需要使用方括号,另外添加在对象上的属性和原型上的属性和方法都可以遍历出来,不是我们想要的
for(let friut in fruits) {
console.log(fruits[friut])
}
(4)ES6提供的for of 可以解决上述循环的缺陷
for(let friut of fruits){
console.log(friut);
}
要获取索引值和当前属性值可改写成下面的代码:
for(let [index,friut]of fruits.entries()){
console.log(friut);
}
遍历出来的是属性值。写法也很简洁。但是目前还不支持循环对象。