当サイトは、アフィリエイト広告を利用しています

jsのforEach内でcontinueやbreakをする

作成日:2022月02月25日
更新日:2024年02月08日

javascriptでは繰り返し処理をする場合にforEach関数をよく使いますが forEach関数内でfor文で使える

  • continue()
  • break()

が使えないのが原因でfor文に変更したりしたことが多々ありました。 色々探してみるとforEach関数内でcontinue()やbreak()と同様のことができる方法が
見つかったのでメモ。

forEach内でcontinueしたい場合

forEach内でreturnした場合にcontinueと同じ動作になる。

js
process.stdin.resume();
process.stdin.setEncoding('utf8');
// Your code here!
const testArray:number[] = new Array()
for(let i =0 ;i<5;i++){
testArray.push(i)
}
//すべて出力
const outAll = (array:number[]):void=>{
console.log("全部出力-----")
array.forEach(test=>{
console.log(test)
})
}
//偶数だけ出力
//continueしたい場合はreturnする
const outGusu = (array:number[]):void=>{
console.log("偶数のみ出力-----")
array.forEach(test=>{
if(test % 2 === 0){
console.log(test)
}else{
return
// return true
// return false
}
})
}
//すべて出力
outAll(testArray)
outGusu(testArray)
//結果
//全部出力-----
//0
//1
//2
//3
//4
//偶数のみ出力-----
//0
//2
//4

参考

forEach内でbreakしたい場合

forEach内でbreakはできません。 そのため変わりにsome関数を使用します some関数は配列などに使用し、条件を一つでも満たしていればtrueを返却する関数です。
つまり、言い換えるとtrueを返却すれば処理が終了するということです。 これを利用してsome関数でbreakするようにする

js
process.stdin.resume();
process.stdin.setEncoding('utf8');
// Your code here!
const testArray:number[] = new Array()
for(let i =0 ;i<5;i++){
testArray.push(i)
}
//すべて出力
const outAll = (array:number[]):void=>{
console.log("全部出力-----")
array.forEach(test=>{
console.log(test)
})
}
//奇数でbreak
//breakしたい場合はreturnする
//return falseは処理が継続するため☓
const breakSome = (array:number[]):void=>{
console.log("奇数でbreak-----")
array.some(test=>{
if(test % 2 != 0){
return true
}else{
console.log(test)
// return
}
})
}
//すべて出力
outAll(testArray)
breakSome(testArray)
//全部出力-----
//0
//1
//2
//3
//4
//奇数でbreak-----
//0

参考

# javascriptのforEach関数内で処理を止めるbreakの代わりになるコード

新着記事

タグ別一覧
top