KumaTechLab
/

MapでforEachする際にbreakしたい

MapでforEachする際にbreakしたい

javascriptでMapを使用する際にそれぞれの要素に対して処理したいことがあると思います。

その際にforEachが便利ではあるのですが、その処理中にbreakやcontinueなどの処理を挟むことは残念ながらできません。

やりたくなるような書き方

const bookList = new Map( [
[ 1234, '良くわかるjavaScript' ],
[ 5678, "Let's Python"],
[ 2468, 'みんなでWordPress']
] );
bookList.forEach( ( value, key ) => {
if( 条件 ) {
//処理
break;
}
} );

残念ながら上のような書き方をする場合はエラーが出てしまいます。

continueを使用した時も同様です。

Mapの繰り返し処理に対してbreakなどしようしたい場合はfor文を使用しましょう。

for文を使用する際にはIteratorを返すものが便利です。

キーを返す場合は「.keys」、値を返す場合は「.values」、キーと値ともにほしい場合は「.entries」を使用できます。

const bookList = new Map( [
[ 1234, '良くわかるjavaScript' ],
[ 5678, "Let's Python"],
[ 2468, 'みんなでWordPress']
] );
const entries = bookList.entries();
for( let entry of entries ) {
//入れた順番でキーと値のペアで取得できます。
// (2) [1234, "よくわかるjavaScript"]
// (2) [5678, "Let's Python"]
// (2) [1234, "みんなでWordPress"]
}

これならば、任意ところでbreakなども可能です。

連想配列が扱いやすい形になっていますね。

phpなどほかの言語では比較的OKな形なので、ついついやってしまいたくなると思います。

この辺りは気を付けたいところです。

Category :
JavaScriptコードレシピ集

JavaScriptコードレシピ集

なにかやりたい場面に応じてコードを探せるのが便利! JavaScriptを少しずつ書けるようになりたい人やWordPressなど基本的には使わないけどたまに使う人向け!

ハンズオンJavaScript

ハンズオンJavaScript

javascriptについて体系的に学びたい際におすすめ! 基礎的な文法から実用てきな内容、Webでの働き、ストレージ、セキュリティなど網羅的に学ぶことができます。

Read next

2020 KumaTechLab.