zoukankan      html  css  js  c++  java
  • Javascript怎么跳出循环,嵌套循环。

    今天要实现一个功能,在数组a中的每一项,对应数组b中的每一项,如果对应上了就给数组b的checked增加ture属性,如果查找不到就给数组b的checked增加false属性。

    如果有哪里写的不对欢迎高手私信给我,本着互联网的分享精神。

    思路一

    一开始想到的思路是如果当前b[index]如果不存在checked=true的话就添加false属性。 但是这样有一个弊端就是会浪费很多次循环,所以我需要寻找一种跳出循环的方法。

    var a = [1, 2]
    var b = [{id: 1}, {id: 2}]
    for (var i = 0; i < b.length; i++) {
      for (var n = 0; n < b.length; n++) {
        if (a[i] === b[n].id) {
          b[n].checked = true
        } else if(b[n].checked!==true) {
          b[n].checked = false
        }
      }
    }
    console.log(b)

    跳出循环方法

    讲解: x就相当于打了一个标记。如果有满足条件的话就break x; (x的命名自己更改)就相当于跳出本次的循环,但是外层的i循环不受影响继续他的循环。虽然结果是一样的,但是却剩下了一点资源 何乐而不为呢。

    var a = [1, 2]
    var b = [{id: 1}, {id: 2}]
    
    
    for (var i = 0; i < b.length; i++) {
      x:
        for (var n = 0; n < b.length; n++) {
        console.log(i,n)
          if (a[i] === b[n].id) {
            b[n].checked = true
            break x;
          } else if(b[n].checked!==true)  {
            b[n].checked = false
          }
        }
    }
    console.log(b)
  • 相关阅读:
    [声明]博主退役了
    galgame(s?)
    atcoder grand contest 040 F Two Pieces
    AtCoder Grand Contest 040 E
    【AtCoder】CODE FESTIVAL 2016 qual C E-順列辞書 / Encyclopedia of Permutations
    GMOJ6282 向量
    [GMOJ6281] 串
    GMOJ 5909 跑商
    2019.10.28 GMOJ 6394 燃烧的火焰
    题解 CF1092B 【Teams Forming】
  • 原文地址:https://www.cnblogs.com/waitforyou/p/6762205.html
Copyright © 2011-2022 走看看