konanomono
@konanomono (伝説の 粉)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Listのフィルタ方法

Q&A

Closed

解決したいこと

for, for in, forEachでListに格納された値にフィルタをかけ、フィルタした値を取得したいです。

List<int> box = [1,3,4,5,6]

というものがあったとしたら、3以上の値を返すために関数を作成し、引数にListを使用して作成しようと思ってます。

whereで取得できるのに、回りくどいと思いますが、どうやるか気になり質問を投稿しました。

※uasi様より、コードの添削を行ってもらえたのですが、いろいろ考えたのですが期待値の出力ができませんでした。。。。

0

1Answer

調べれば出てきそうですが、一応載せておきます。
考え方としてはあらかじめ空のリストを作っておいて、boxの数字それぞれに対してifでチェックし、3以上なら空のリストに加えていく感じです。

List<int> filtered1 = [];
for (int i = 0; i < box.length; i++) {
  int n = box[i];
  if (n >= 3) filtered1.add(n);
}
print(filtered1);

List<int> filtered2 = [];
for (int n in box) {
  if (n >= 3) filtered2.add(n);
}
print(filtered2);

List<int> filtered3 = [];
box.forEach((n) {
  if (n >= 3) filtered3.add(n);
});
print(filtered3);
1Like

Comments

  1. @konanomono

    Questioner

    おおお。。。!!!!

    こういうことだったのですか!!
    関数の作成などもやってみましたが、上手くできました!!
    (まだforしかやっていませんが、、、)

    再度、コードを見直しながら理解を深めていきます。

    本当にありがとうございました。。。!!

Your answer might help someone💌