Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dart equivalent of Array.prototype.map()?

I try to get the id's from List of Maps in Dart. In JavaScript it would be something like this:

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

This should give the result

[3, 4]

Is there a simple way of doing this in Dart?


So far I was able to do this (in Dart):

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

The result is a "MappedListIterable" (not sure what that is) and you cannot use result[0] like you can with a normal List. How can I make a list of this?

like image 467
Hendrik Jan Avatar asked Apr 26 '15 23:04

Hendrik Jan


Video Answer


1 Answers

See the API for List.map and the API for Iterable (which it returns). You can get the nth element from the iterable using .elementAt(n) or the first element using .first.

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

You can also turn it back into a List using .toList():

var resultList = list.map((x) => x['id']).toList();
like image 130
Asad Saeeduddin Avatar answered Sep 23 '22 02:09

Asad Saeeduddin