地图&过滤从Javascript对象返回元素

时间:2017-10-03 23:59:05

标签: javascript javascript-objects

我正在尝试学习使用map,reduce和filter。我看过MDN,但文档让我感到困惑。

我正在尝试使用map来返回一个新的玩家姓名数组。我也试图使用过滤器与一个团队的玩家组成阵列。

const athletes= [{
    name: 'Peter',
    sport: 'baseball',
    league: 'varsity',
    team: 'Rangers',
}, {
    name: 'Jon',
    sport: 'football',
    league: 'little',
    team: 'Cowboys',
}];

以下是我使用map作为名称数组的内容:

listPlayers = function(name) {
    // console.log(athletes[name]);
    return name;
}

athletes.map(listPlayers);

奖金问题:Javascript for Kids后我应该使用哪些学习资源?

感谢。

2 个答案:

答案 0 :(得分:1)

  

我试图使用map来返回一个新的播放器名称数组。

好。 map()中的回调函数将从您正在映射的数组中接收一个项目。所以你的功能看起来应该更像这样:

listPlayers = function(athlete) {
    return athlete.name;
}

随着每位运动员的进入,你都会回复这个名字。所以:

athletes.map(listPlayers)
//[ 'Peter', 'Jon' ]

答案 1 :(得分:1)

map函数应该与params一起使用回调,每个iter都是当前项(比如for循环):

var athletesNames = athletes.map( function(athlete){
  return athlete.name;
});

过滤器的项目synthax,为您要选择的项目返回true

var athletesTeamRangers = athletes.filter( function(athlete){
  return athlete.team === 'Rangers';
});