2015-04-26 12 views
7

Ich versuche, die IDs aus der Liste der Karten in Dart zu bekommen. In JavaScript wäre es so etwas wie diese:Dart-Äquivalent von Array.prototype.map()?

var list = [{id:3, name:'third'}, {id:4, name:'fourth'}]; 
var result = list.map(function(x){return x.id;}); 

Dies ist das Ergebnis in Dart

[3, 4] 

Gibt es eine einfache Möglichkeit, dies zu tun geben soll?


Bisher konnte ich diese (in Dart) tun:

var list = [{'id':3, 'name':'third'},{'id':4, 'name':'fourth'}]; 
var result = list.map((x) => x['id']); 

Das Ergebnis ist ein "MappedListIterable" (nicht sicher, was das ist) und man kann result[0] nicht, wie Sie verwenden Kann mit einer normalen Liste. Wie kann ich eine Liste davon machen?

Antwort

6

Siehe API for List.map und die API for Iterable (die es zurückgibt). Sie können das Element n aus dem iterablen Element mit .elementAt(n) oder das erste Element mit .first abrufen.

var list = [{'id':3, 'name':'third'},{'id':4, 'name':'fourth'}]; 
var result = list.map((x) => x['id']).first; 

Sie können es auch .toList() ein in List mit zurückdrehen:

var resultList = list.map((x) => x['id']).toList(); 
Verwandte Themen