问题描述
var players = [{
name: "Luka Modric",age: 33,debut: 2006,team: "Real Madrid",position: "Midfielder",country: "Croatian",url: "https://media.guim.co.uk/737d9bde5b3cf33b0230c887acfadf9e68c427bd/169_141_3371_2023/500.jpg",awards: [{
name: "The Best FIFA Men's Player",year: 2016
},{
name: "Ballon",year: 2018
},{
name: "The Best FIFA Men's Player",year: 2018
}
]
},{
name: "Cristiano Ronaldo",debut: 2003,team: "Juventus",position: "Forward",country: "Portugal",url: "https://media.guim.co.uk/f53bba20898fef82548e3b8369d68b3c9b25b4c1/1_189_3919_2351/500.jpg",year: 2017
},{
name: "European Golden Shoe",year: 2015
},{
name: "NGolo Kanté",age: 27,debut: 2007,team: "Chelsea",country: "France",url: "https://media.guim.co.uk/9aeaf1767280c511ff5295a293e9bafe20f35d65/0_129_4105_2463/500.jpg",awards: [{
name: "FIFA FIFPro World XI",{
name: "french Player of the Year",year: 2017
}
]
},{
name: "Lionel Messi",age: 31,team: "Barcelona",country: "Argentina",url: "https://media.guim.co.uk/b035e8f52c5b5612121fdcf8b54bf149be4f67e7/0_211_3846_2307/500.jpg",awards: [{
name: "FIFA World Player of the Year",year: 2009
},year: 2019
},];
如何在首次亮相年份等于2003时返回对象数组?
解决方法
看看JS Array Methods,特别是array.filter。此代码应满足您的要求:
var playersWhoDebutedIn2003 = players.filter(player => { return player.debut === 2003;});
,
使用Array#filter:
players.filter(({debut}) => debut===2003);
在这里进行测试:
var players = [{ name: "Luka Modric",age: 33,debut: 2006,team: "Real Madrid",position: "Midfielder",country: "Croatian",url: "https://media.guim.co.uk/737d9bde5b3cf33b0230c887acfadf9e68c427bd/169_141_3371_2023/500.jpg",awards: [{ name: "The Best FIFA Men's Player",year: 2016 },{ name: "Ballon",year: 2018 },{ name: "The Best FIFA Men's Player",year: 2018 } ] },{ name: "Cristiano Ronaldo",debut: 2003,team: "Juventus",position: "Forward",country: "Portugal",url: "https://media.guim.co.uk/f53bba20898fef82548e3b8369d68b3c9b25b4c1/1_189_3919_2351/500.jpg",year: 2017 },{ name: "European Golden Shoe",year: 2015 },{ name: "NGolo Kanté",age: 27,debut: 2007,team: "Chelsea",country: "France",url: "https://media.guim.co.uk/9aeaf1767280c511ff5295a293e9bafe20f35d65/0_129_4105_2463/500.jpg",awards: [{ name: "FIFA FIFPro World XI",{ name: "French Player of the Year",year: 2017 } ] },{ name: "Lionel Messi",age: 31,team: "Barcelona",country: "Argentina",url: "https://media.guim.co.uk/b035e8f52c5b5612121fdcf8b54bf149be4f67e7/0_211_3846_2307/500.jpg",awards: [{ name: "FIFA World Player of the Year",year: 2009 },year: 2019 },];
let result = players.filter(({debut}) => debut===2003);
console.log(result);
,
您可以像这样使用数组的过滤功能
players.filter(player => player.debut === 2003)
请参见下面的输出。
var players = [{
name: "Luka Modric",awards: [{
name: "The Best FIFA Men's Player",year: 2016
},{
name: "Ballon",year: 2018
},{
name: "The Best FIFA Men's Player",year: 2018
}
]
},{
name: "Cristiano Ronaldo",year: 2017
},{
name: "European Golden Shoe",year: 2015
},{
name: "NGolo Kanté",awards: [{
name: "FIFA FIFPro World XI",{
name: "French Player of the Year",year: 2017
}
]
},{
name: "Lionel Messi",awards: [{
name: "FIFA World Player of the Year",year: 2009
},year: 2019
},];
var output = players.filter(player => player.debut === 2003);
console.log(output);