• 十一. for of


    const fruits = ['Apple','Banana','Orange','Mango'];
    

      

    es5: 可读性差

    for(let i=0; i < fruits.length; i ++){
       console.log(fruits[i]);
    }

    // Apple
    // Banana
    // Orange
    // Mango

      

    es6箭头函数:

    一. 注释: 缺点 不能终止或跳过循环 以下按钮会报错
    fruits.forEach(fruit =>{
     console.log(fruit);
    })
    fruits.forEach(fruit =>{
     if(fruit === 'Orange'){
      break;
     } console.log(fruit); })
    fruits.forEach(fruit =>{
     if(fruit === 'Orange'){
      continue;
     } console.log(fruit); })

    二. 注释: 会把原型上的属性跟内容也返回回来
    for (let index in fruits){
      console.log(fruits[index]);
    }
    
    Array.prototype.first = function(){
      return this[0];
    }
    const fruits = ['Apple', 'Banana', 'Orange', 'Mango'];
    fruits.describe = 'My favorite fruits';
    
    for (let index in fruits){
      console.log(fruits[index]);
    }
    
    // Apple
    // Banana
    // Orange
    // Mango
    // My favorite fruits
      function(){
        return this[0];
      }
    

      

    三:终极版,解决了上面循环的缺陷 不会打印出原型上一些属性,支持跳出循环
    for(let fruit of fruits){
      console.log(fruit);
    }
    // Apple
    // Banana
    // Orange
    // Mango
    
    for(let fruit of fruits){
      if(fruit === 'Orange'){
        break;  //终止
      }
      console.log(fruit);  // Apple Banana
    }
    
    for(let fruit of fruits){
      if(fruit === 'Orange'){
        continue;  //跳出循环
      }
      console.log(fruit);  // Apple Banana Mango
    }
    

      

  • 相关阅读:
    jquery之empty()与remove()区别
    (四)快速排序
    (三)归并排序
    (二)希尔排序
    (一)冒泡排序、插入排序、选择排序
    四,JVM 自带工具之jvisualvm
    JAVA多线程之Volatiles
    JAVA多线程之线程池的使用
    CountDownLatch与CyclicBarrier的使用与区别
    乐观锁与悲观锁及其实现
  • 原文地址:https://www.cnblogs.com/wangRong-smile/p/11927206.html
Copyright © 2020-2023  润新知