2015-04-26 5 views
7

Provo a ottenere gli ID dall'elenco di Maps in Dart. In JavaScript sarebbe qualcosa di simile:Dart equivalent di Array.prototype.map()?

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

Questo dovrebbe dare il risultato

[3, 4] 

C'è un modo semplice di fare questo a Dart?


Finora sono stato in grado di farlo (a Dart):

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

Il risultato è un "MappedListIterable" (non sono sicuro di cosa si tratta) e non è possibile utilizzare result[0] come te può con una lista normale. Come posso fare una lista di questo?

risposta

6

Vedere API for List.map e API for Iterable (che restituisce). È possibile ottenere l'elemento n dall'iterazione utilizzando .elementAt(n) o il primo elemento utilizzando .first.

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

È inoltre possibile riattivarlo in un List utilizzando .toList():

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