在不停止外循环的情况下中断嵌套for循环

时间:2018-02-06 15:53:52

标签: javascript

我有这段代码:

let items = ["A", "B", "C"];
let desc = ["a 1", "b 2", "c 3"];
let args = "1 b 2 3";
let query = args.split(" ");
let i2;
let i;
console.log("Search query: " + args);
for (i = 0; i < items.length; i++) {
    for (i2 = 0; i2 < query.length; i2++) {
         if (items[i].toLowerCase().indexOf(query[i2].toLowerCase()) > -1 || desc[i].toLowerCase().indexOf(query[i2].toLowerCase()) > -1) console.log(items[i]); return;
    }
};

当if评估为for时,我想停止孩子true,但我不知道该怎么做。

当前输出:A 期望的输出:A B C 使用break输出:A B B C

2 个答案:

答案 0 :(得分:1)

要摆脱循环,请使用break关键字

  

break语句终止当前的循环,开关或标签语句,并将程序控制转移到终止语句之后的语句。

let items = ["A", "B", "C"];
let desc = ["a 1", "b 2", "c 3"];
let args = "1 b 2 3";
let query = args.split(" ");

console.log("Search query: " + args);

for (let i = 0; i < items.length; i++) {
  for (let i2 = 0; i2 < query.length; i2++) {

    if (
      items[i].toLowerCase().indexOf(query[i2].toLowerCase()) > -1
      || desc[i].toLowerCase().indexOf(query[i2].toLowerCase()) > -1
    ) {
      console.log(items[i]);
      break;
    }
  }
}

答案 1 :(得分:-1)

像这样,但您的代码中还有其他问题。

let items = ["A", "B", "C"];
let desc = ["a 1", "b 2", "c 3"];
let args = "1 b 2 3";
let query = args.split(" ");
let i2;
let i;
for (i = 0, len = items.length; i < len; i++) {
  var breakChildLoop = false;
  for (i2 = 0; i2 < query.length || !breakChildLoop; i2++) {
    if (items[i].toLowerCase().indexOf(query[i2].toLowerCase()) > -1 || desc[i].toLowerCase().indexOf(query[i2].toLowerCase()) > -1) {
      breakChildLoop = true;
      console.log(items[i]);
    }
  }
};