[1,2,3,4,5]
という配列があったとて、
3以上の要素を除去するにはどうすればよいでしょうか?
考えられるのは、forで回して新しく配列にプッシュし直すというのを思いつきました。
他にもっと良いやり方があれば教えていただきたいです。
「(indexが)3以上の要素を除去するにはどうすればよいでしょうか?」と書くべきであったと思います。 私もLhankor_Mhyさんと同じように「(値が)3以上の要素を除去するにはどうすればよいでしょうか?」と解釈しました。
w
indexが3以上ではなく、要素が3以上です。ですので最初の解釈であっています。今回lengthを見るのではなく、値自体を比較すれば良いですね(参考URLの)
用語の使い方に問題があるように思います。「要素が3以上」で考えられる解釈は「要素(のindex)が3以上」「要素(の値)が3以上」「要素(の数)が3以上」の3通り。 https://techacademy.jp/magazine/5548 で用語を整理してみてはいかがでしょうか。
「値自体を比較すれば良い」のでしたら、easy_no_easy さんの回答にある Array.slice は目的に合致しません。それは「要素のindexが3以上を取り出すコード」です。除去ではありませんし、比較対象はindexになります。
この場合は Array.prototype.filter が正解ですね。質問文を「3以上の値を持つ要素を除去するには」に編集し、ベストアンサーを選びなおすことを検討してはいかがでしょうか。
値が3以上ですね。柔軟に考えましょう。
趣旨が伝わっていないようなので、easy_no_easyさんの回答のコメント欄に書きました。
柔軟で済ませられる問題ではなくて、複数解釈が可能な省略をしている(3以上の要素を除去するには)事で easy_no_easy さんに無駄に回答させてしまっているんです。ボランティアで回答してくれている方の時間の事も考えてあげて下さい。
わかりました!
回答2件
あなたの回答
tips
プレビュー