在dart中查找列表中的每第n个元素

trnvg8h3  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(149)

我有一张清单

List<List<double>> data = [[1,2,3],[1,2,3], [2,2,3], [2,2,3], [1,2,3],  ...];

我需要把内部数组中的第一个元素放到一个数组中;
因此结果将是

<List<double> newData  = [1,1,2,2,1.....]
rkue9o1l

rkue9o1l1#

如果只需要每个内部列表的第一个元素,或者只需要一个元素,可以尝试以下方法。

final data = [
    [1, 2, 3],
    [4, 5, 6]
  ];

  final newData = [...data.map((e) => e.first)];  // or elementAt(...)
  print(newData); // [1, 4]

如果你想在这个数组中得到 every 元素(类似于列),那么我将尝试如下所示的暴力破解(我相信有更好的方法用package:collection来完成,但我不确定如何使用atm)。

import 'package:collection/collection.dart';

  const columnsAmount = 3;
  final data = [
    [1, 2, 3],
    [4, 5, 6]
  ];

  final result = <int, List<int>>{
    for (var i = 0; i < columnsAmount; i++) i: []
  };
  for (final d in data) {
    d.forEachIndexed((index, element) {
      result[index]?.add(element);
    });
  }

  print(result);  // {0: [1, 4], 1: [2, 5], 2: [3, 6]}

相关问题