weixin_41584177
2018-01-22 13:28
采纳率: 83.3%
浏览 5.8k
已采纳

js 中包含对象的数组中取最大值如何实现?

  score: [{ 'name': 'Zhexue',    'score': 62 }, 
          { 'name': 'Jingjixue', 'score': 33 },
          { 'name': 'Faxue',     'score': 52 },
          { 'name': 'Jiaoyuxue', 'score': 44 },
          { 'name': 'Shuxue', 'score': 47 },
          { 'name': 'Wenxue', 'score': 87 },
          { 'name': 'Xinlixue', 'score': 57 },
          { 'name': 'Yixue', 'score': 43 },
          { 'name': 'Guanlixue', 'score': 47 },
          { 'name': 'Yishuxue', 'score': 52 },
          { 'name': 'Lixue', 'score': 77 },
          { 'name': 'Gongxue', 'score': 79 },
          { 'name': 'Lishixue', 'score': 88 }
          ]

请问如何定义函数取到score.score中的最大值,并取出name

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

10条回答 默认 最新

  • hany2008 2018-01-22 13:55
    已采纳

    function getmaxscore(arrayobj)
    var maxi=0;
    for (var i=0;i<arrayobj.length;i++)
    {
    if (arrayobj[maxi].score<=arrayobj[i].score)
    {
    maxi=i;

    }
    }
    return maxi;
    }

    代码如上所示,希望帮到你

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • mhp365 2018-01-22 13:40

    下载underscore.js (https://cdn.bootcss.com/underscore.js/1.8.3/underscore.js)
    var stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];
    _.max(stooges, function(stooge){ return stooge.age; });
    => {name: 'curly', age: 60};

    评论
    解决 无用
    打赏 举报
  • mhp365 2018-01-22 13:48

    var max = {
    name: '',
    score: 0
    };

    for (var i = 0;i < score.length; i++) {
    var item = score[i];
    if (item.score > max.score) {
    max.score = item.score;
    max.name = item.name
    }
    }
    max => { 'name': 'Lishixue', 'score': 88 }

    评论
    解决 无用
    打赏 举报
  • 爱我所爱Tb 2018-01-22 13:56
    $(function(){ var max = score[0].score; var index=0; var score= [{ 'name': 'Zhexue', 'score': 62 }, { 'name': 'Jingjixue', 'score': 33 }, { 'name': 'Faxue', 'score': 52 }, { 'name': 'Jiaoyuxue', 'score': 44 }, { 'name': 'Shuxue', 'score': 47 }, { 'name': 'Wenxue', 'score': 87 }, { 'name': 'Xinlixue', 'score': 57 }, { 'name': 'Yixue', 'score': 43 }, { 'name': 'Guanlixue', 'score': 47 }, { 'name': 'Yishuxue', 'score': 52 }, { 'name': 'Lixue', 'score': 77 }, { 'name': 'Gongxue', 'score': 79 }, { 'name': 'Lishixue', 'score': 88 } ] for(var i=0;i<score.length;i++){ if(score[i].score>max){ max = score[i].score; index=i; } } alert(max); alert(score[index].name); })
    评论
    解决 无用
    打赏 举报
  • 蜀山雪松 2018-01-22 14:11

    写一个对象比较函数如下所示,然后获得最大或者最小即可
    //比较器
    function compare(propertyName) {
    return function (object1, object2) {
    var value1 = object1[propertyName];
    var value2 = object2[propertyName];
    if (value1 < value2) {
    return 1;
    }else if (value1 > value2) {
    return -1;
    }else {
    return 0;
    }
    };

    }
    //使用方法
      data.sort(compare("name"));

    评论
    解决 无用
    打赏 举报
  • 丶Hzh 2018-01-22 14:28
     var scoremax = score[0].score;
        var namemax = score[0].name;
        for(var i=1;i<score.length;i++){
            if(score[i].score>scoremax){
                scoremax = score[i].score;
                namemax = score[i].name;
            }
        }
        console.info("name:"+namemax+",score:"+scoremax);
    
    评论
    解决 无用
    打赏 举报
  • 园区阿祖 2018-01-22 14:41

    办法可能笨一点,先得出最大分数
    var maxscore=maxscore=data.score[0].score;
    for( var i =0;i++;i if(data.score[i+1].score>maxscore){
    maxscore=data.score[i+1].score;
    }
    }
    然后根据分数得出name
    for( var i =0;i++;i<data.score.length–1){
    if(data.score[i].score=maxscore){
    alert(data.score[i].name);
    }
    }

    评论
    解决 无用
    打赏 举报
  • hrinfo 2018-01-22 16:21

    function getmaxscore(arrayobj)
    var maxi=0;
    for (var i=0;i<arrayobj.length;i++)
    {
    if (arrayobj[maxi].score<=arrayobj[i].score)
    {
    maxi=i;

    }
    }
    return maxi;
    }

    代码如上所示,希望帮到你

    这个没什么错

    评论
    解决 无用
    打赏 举报
  • qq_27045057 2018-01-23 00:49

    function getMaxScore(obj)
    {

    }

    评论
    解决 无用
    打赏 举报
  • 知弦断 2018-08-25 16:47

    Math.max.app(Maht,score.map(input=>{return input.score}))

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题