[解決済み] Array.forEachでbreakを呼び出すようなショートサーキット
2022-03-15 12:40:20
質問
[1,2,3].forEach(function(el) {
if(el === 1) break;
});
どうすれば新しい
forEach
メソッドをJavaScriptで作成することはできますか?試してみたところ
return;
,
return false;
と
break
.
break
クラッシュし
return
は何もせず、反復を続けます。
どのように解決するのですか?
という機能が組み込まれていません。
break
で
forEach
. 実行を中断するには、ある種の例外を投げる必要があります。
var BreakException = {};
try {
[1, 2, 3].forEach(function(el) {
console.log(el);
if (el === 2) throw BreakException;
});
} catch (e) {
if (e !== BreakException) throw e;
}
JavaScriptの例外処理は、あまりきれいなものではありません。伝統的な
for
を本当に必要とする場合は、ループの方がより適切かもしれません。
break
その中に
使用方法
Array#some
代わりに
Array#some
:
[1, 2, 3].some(function(el) {
console.log(el);
return el === 2;
});
これは、以下の理由で動作します。
some
は以下を返します。
true
配列順に実行されたコールバックのいずれかが
true
残りの実行を短絡させる。
some
その逆は
every
(で停止する)。
return false
)、および
forEach
はすべて ECMAScript 第 5 版のメソッドであり、これを
Array.prototype
がないブラウザでは
関連
-
親子コンポーネント通信を解決する3つのVueスロット
-
Vueにシンプルなメモ帳機能を実装
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
[解決済み】ExpressJS - throw er Unhandled errorイベント
-
Uncaught TypeError: null のプロパティ 'offsetHeight' を読み取れませんでした。
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] .prop() vs .attr()
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSアレイループと効率解析の比較
-
vueディレクティブv-bindの使用と注意点
-
vueにおけるv-forループオブジェクトのプロパティ
-
Vueの「データを聴く」原則を解説
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み] 期待される代入または関数呼び出し: 未使用式なし ReactJS
-
[解決済み] TypeScript foreach return [重複]の場合
-
[解決済み] JavascriptのforEachを停止する方法は?重複
-
[解決済み】`forEach`関数内の`return`キーワードの意味とは?重複
-
[解決済み] javascriptの配列mapメソッドでのBreak文【重複】。