魔法JS☆あれい 第9話「someなの、everyが許さない」
登場人物
丹生(にゅう)あれい
魔法少女「魔法(マジカル)JS(女子小学生)☆あれい」として活動中。
イテレー太
正体不明の魔法生物。
第1部「ミューテーター・メソッド編」
* 第1話「popでpushした、ような……」
* 第2話「shiftはとってもunshiftって」
* 第3話「もうsortもreverseも怖くない」
* 第4話「fillも、spliceも、copyWithinもあるんだよ」
第2部「アクセサ・メソッド編」
* 第5話「joinなんて、concatなわけない」
* 第6話「indexOfなの絶対lastIndexOf」
* 第7話「includesのsliceと向き合えますか?」
第3部「イテレーション・メソッド編」
* 第8話「filterって、ほんとfindとfindIndex」
some()
イテレー太「さあ、戦いはまだまだ続くよ!」
あれい「ちょっと休憩させろよ駄犬」
イ「召喚したデータは前回を参照してね! そして、今回の敵の弱点は、『'JavaScript'というタグを含む記事一覧』だよ! さあ、条件に合致するデータをreturn
して敵を倒してよ!」
あ「面倒くせえなあ……」
return items.filter(item => item.tags.some(tag => tag.name === 'JavaScript'))
あ「これでいいのか」
イ「あれい、また解説をお願い!」
あ「ああん? 面倒くせえなあ……だから、それぞれの記事アイテムのtags
プロパティをsome()
メソッドで検索して、name
が'JavaScript'のタグが1個でもあればtrue
を返してだな、それをfilter()
メソッドで抽出してるんだよ」
イ「さすがはあれい! 口は悪いけど仕事は早いね!」
あ「やかましいわ」
解説
some()
メソッドは、配列の少なくとも 1 つの要素が、渡された関数によって実施されるテストに通るかどうかをテストします。
(MDNより)
配列のすべての要素に対してテスト関数を実行し、条件に合致する要素が1つでもあればtrue
を、なければfalse
を返します。
テスト関数に渡される引数はfilter()
メソッドと同じです。
every()
イ「問題。『本文(body
)中に'JavaScript'という文字列を含む記事は、必ず'JavaScript'というタグが付けられている』。○か×か?」
あ「なんだよ急に。ウルトラクイズか」
イ「なんで女子小学生がウルトラクイズを知ってるのかは置いといて、その答えが次の敵の弱点だよ! さあ、答えを調査して、敵を倒してよ!」
あ「面倒くせえ事この上ねえな……」
イ「頑張れ! あれい!」
return items.filter(item => /JavaScript/.test(item.body))
.every(item => item.tags.some(tag => tag.name === 'JavaScript'));
あ「これでいいのかよ」
イ「あれい、また解説をお願い!」
あ「ああん? 面倒くせえなあ……だから、まずは本文中に'JavaScript'という文字列を含む記事だけを抽出してだな、次にその記事が'JavaScript'タグを含むかをsome()
メソッドで判定し、最後にすべてがtrue
を返したかをevery()
メソッドで判定してるんだよ」
イ「さすがはあれい! 女子小学生らしさは皆無だけど仕事は早いね!」
あ「黙れ」
解説
every()
メソッドは、与えられた関数によって実行されるテストに、配列のすべての要素が通るかどうかをテストします。
(MDNより)
every()
メソッドは、配列のすべての要素に対してテスト関数を実行し、すべての要素が条件に合致した場合のみtrue
を、そうでなければfalse
を返します。
テスト関数に渡される引数はfilter()
メソッドと同じです。
次回予告
誰も、コールバック関数から逃れられない。
誰も、コールバック関数からthisを参照できない。
Author And Source
この問題について(魔法JS☆あれい 第9話「someなの、everyが許さない」), 我々は、より多くの情報をここで見つけました https://qiita.com/8amjp/items/ec91d29f8f166b45efbb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .