0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

魔法JS☆あれい 第9話「someなの、everyが許さない」

Last updated at Posted at 2020-03-22

登場人物

丹生(にゅう)あれい
魔法少女「魔法(マジカル)JS(女子小学生)☆あれい」として活動中。

イテレー太
正体不明の魔法生物。

第1部「ミューテーター・メソッド編」

第2部「アクセサ・メソッド編」

第3部「イテレーション・メソッド編」

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を参照できない。

第10話 もうmapにもforEachにも頼らない

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?