【问题标题】:how to return array of objects in javascript? [closed]如何在javascript中返回对象数组? [关闭]
【发布时间】:2020-12-07 21:56:42
【问题描述】:

我有这个代码..

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",
    age: 33,
    debut: 2003,
    team: "Juventus",
    position: "Forward",
    country: "Portugal",
    url: "https://media.guim.co.uk/f53bba20898fef82548e3b8369d68b3c9b25b4c1/1_189_3919_2351/500.jpg",
    awards: [{
        name: "The Best FIFA Men's Player",
        year: 2017
      },
      {
        name: "European Golden Shoe",
        year: 2015
      },
      {
        name: "Ballon",
        year: 2018
      }
    ]
  },

  {
    name: "NGolo Kanté",
    age: 27,
    debut: 2007,
    team: "Chelsea",
    position: "Midfielder",
    country: "France",
    url: "https://media.guim.co.uk/9aeaf1767280c511ff5295a293e9bafe20f35d65/0_129_4105_2463/500.jpg",
    awards: [{
        name: "FIFA FIFPro World XI",
        year: 2018
      },
      {
        name: "French Player of the Year",
        year: 2017
      }
    ]
  },
  {
    name: "Lionel Messi",
    age: 31,
    debut: 2003,
    team: "Barcelona",
    position: "Forward",
    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
      },
      {
        name: "The Best FIFA Men's Player",
        year: 2019
      },
      {
        name: "European Golden Shoe",
        year: 2018
      }
    ]
  },
];

当首次亮相年份等于 2003 年时,如何返回对象数组?

【问题讨论】:

  • 分享你的代码实现。你试图解决这个问题。
  • 请正确格式化您的代码。请添加预期的输出以使问题尽可能清晰。请注意,SO 不适用于此类问题(无代码 -> 我想要解决方案)。哦,对于filter 你的价值观,请使用players.filter(p=>p.debut===2003)

标签: javascript arrays javascript-objects


【解决方案1】:

查看JS Array Methods,特别是array.filter。这段代码应该做你需要的:

var playersWhoDebutedIn2003 = players.filter(player => { return player.debut === 2003;});

【讨论】:

    【解决方案2】:

    使用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", age: 33, debut: 2003, team: "Juventus", position: "Forward", country: "Portugal", url: "https://media.guim.co.uk/f53bba20898fef82548e3b8369d68b3c9b25b4c1/1_189_3919_2351/500.jpg", awards: [{ name: "The Best FIFA Men's Player", year: 2017 }, { name: "European Golden Shoe", year: 2015 }, { name: "Ballon", year: 2018 } ] },
    
                   { name: "NGolo Kanté", age: 27, debut: 2007, team: "Chelsea", position: "Midfielder", country: "France", url: "https://media.guim.co.uk/9aeaf1767280c511ff5295a293e9bafe20f35d65/0_129_4105_2463/500.jpg", awards: [{ name: "FIFA FIFPro World XI", year: 2018 }, { name: "French Player of the Year", year: 2017 } ] }, { name: "Lionel Messi", age: 31, debut: 2003, team: "Barcelona", position: "Forward", 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 }, { name: "The Best FIFA Men's Player", year: 2019 }, { name: "European Golden Shoe", year: 2018 } ] }, ];
                   
    let result = players.filter(({debut}) => debut===2003);
    console.log(result);

    【讨论】:

    • 假设我们要提取2005年和2006年出道的球员详细信息?如何做到这一点
    【解决方案3】:

    你可以像这样使用数组的过滤功能

    players.filter(player => player.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",
        age: 33,
        debut: 2003,
        team: "Juventus",
        position: "Forward",
        country: "Portugal",
        url: "https://media.guim.co.uk/f53bba20898fef82548e3b8369d68b3c9b25b4c1/1_189_3919_2351/500.jpg",
        awards: [{
            name: "The Best FIFA Men's Player",
            year: 2017
          },
          {
            name: "European Golden Shoe",
            year: 2015
          },
          {
            name: "Ballon",
            year: 2018
          }
        ]
      },
    
      {
        name: "NGolo Kanté",
        age: 27,
        debut: 2007,
        team: "Chelsea",
        position: "Midfielder",
        country: "France",
        url: "https://media.guim.co.uk/9aeaf1767280c511ff5295a293e9bafe20f35d65/0_129_4105_2463/500.jpg",
        awards: [{
            name: "FIFA FIFPro World XI",
            year: 2018
          },
          {
            name: "French Player of the Year",
            year: 2017
          }
        ]
      },
      {
        name: "Lionel Messi",
        age: 31,
        debut: 2003,
        team: "Barcelona",
        position: "Forward",
        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
          },
          {
            name: "The Best FIFA Men's Player",
            year: 2019
          },
          {
            name: "European Golden Shoe",
            year: 2018
          }
        ]
      },
    ];
    
    var output = players.filter(player => player.debut === 2003);
    console.log(output);

    【讨论】:

    • 假设我们要提取2005年和2006年出道的球员详细信息?该怎么做?
    • players.filter(player => player.debut === 2005 || player.debut === 2006) 使用这个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2014-10-15
    • 2013-09-24
    • 2017-07-11
    相关资源
    最近更新 更多