다트에는 공통점에 해당하는 것이 있습니다.
enumerate(List) -> Iterator((index, value) => f)
or
List.enumerate() -> Iterator((index, value) => f)
or
List.map() -> Iterator((index, value) => f)
이것이 가장 쉬운 방법 인 것 같지만이 기능이 존재하지 않는다는 것이 여전히 이상하게 보입니다.
Iterable<int>.generate(list.length).forEach( (index) => {
newList.add(list[index], index)
});
편집하다:
@ hemanth-raj 덕분에 내가 찾고 있던 해결책을 찾을 수있었습니다. 비슷한 작업을해야하는 모든 사람을 위해 여기에 넣겠습니다.
List<Widget> _buildWidgets(List<Object> list) {
return list
.asMap()
.map((index, value) =>
MapEntry(index, _buildWidget(index, value)))
.values
.toList();
}
또는 반복 가능한 값을 반환하는 동기 생성기 함수를 만들 수 있습니다.
Iterable<MapEntry<int, T>> enumerate<T>(Iterable<T> items) sync* {
int index = 0;
for (T item in items) {
yield MapEntry(index, item);
index = index + 1;
}
}
//and use it like this.
var list = enumerate([0,1,3]).map((entry) => Text("index: ${entry.key}, value: ${entry.value}"));
Map#forEach
? 당신이 원하는 건가요?