1. ホーム
  2. dart

リストを平坦化するには?

2023-08-19 02:41:32

質問

を簡単に平坦化するにはどうしたらよいでしょうか。 List を簡単に平らにすることができますか?

例えば

var a = [[1, 2, 3], ['a', 'b', 'c'], [true, false, true]];
var b = [1, 2, 3, 'a', 'b', 'c', true, false, true];

どのようにすれば ab に、つまり、1つの List を含む単一のにするのですか?

どのように解決するには?

私が知っている最も簡単な方法は Iterable.expand() を同一性関数と一緒に使うことです。 expand() はIterableの各要素を受け取り、それに対してIterableを返す関数("expand"の部分)を実行し、その結果を連結する。他の言語ではflatMapとして知られているかもしれません。

つまり、identity関数を使用することで、expandは単にアイテムを連結します。本当にリストが必要な場合は toList() .

var a = [[1, 2, 3], ['a', 'b', 'c'], [true, false, true]];
var flat = a.expand((i) => i).toList();