• 已知 list 数组请写出一段代码,实现功能: 数组内type 相同的元素只保留 votes 最大的元素,并且元素需要按照 votes 从大到小排序。


    题目

    1. var list = [{type:1, des:"dddd", votes:80},
    2. {type:2, des:"dddd", votes:60},
    3. {type:3, des:"dddd", votes:70},
    4. {type:1, des:"dddd", votes:50},
    5. {type:3, des:"dddd", votes:80},
    6. {type:8, des:"dddd", votes:80},
    7. {type:9, des:"dddd", votes:20},
    8. {type:1, des:"dddd", votes:100},
    9. {type:3, des:"dddd", votes:30}]

    分析

    读题:首先第一步需要将type等于1的挑选出来,只保留最大的元素,

     然后需要将数组以votes从大到小排列

    代码

    1. var list = [
    2. { type: 1, des: "dddd", votes: 80 },
    3. { type: 2, des: "dddd", votes: 60 },
    4. { type: 3, des: "dddd", votes: 70 },
    5. { type: 1, des: "dddd", votes: 50 },
    6. { type: 3, des: "dddd", votes: 80 },
    7. { type: 8, des: "dddd", votes: 80 },
    8. { type: 9, des: "dddd", votes: 20 },
    9. { type: 1, des: "dddd", votes: 100 },
    10. { type: 3, des: "dddd", votes: 30 },
    11. ];
    12. // 使用 reduce 方法合并相同 type 的元素,并保留 votes 最大的那个
    13. var result = list.reduce((accumulator, currentItem) => {
    14. // 查找 accumulator 中是否已经有一个相同 type 的元素
    15. var existingItem = accumulator.find(
    16. (item) => item.type === currentItem.type
    17. );
    18. // 如果没有找到,或者找到的元素的 votes 比当前元素的 votes 小,则添加或替换当前元素
    19. if (!existingItem || existingItem.votes < currentItem.votes) {
    20. if (!existingItem) {
    21. accumulator.push(currentItem);
    22. } else {
    23. existingItem.votes = currentItem.votes;
    24. // 如果你想完全替换 existingItem,你可以这样做:
    25. // accumulator[accumulator.indexOf(existingItem)] = currentItem;
    26. }
    27. }
    28. return accumulator;
    29. }, []);
    30. // 使用 sort 方法对结果按照 votes 从大到小排序
    31. result.sort((a, b) => b.votes - a.votes);
    32. console.log(result);

    效果图

    结语

    点个赞啦!

  • 相关阅读:
    flutter笔记-万物皆是widget
    【JAVA数据结构系列】06_排序详解
    【C++指针】函数返回指针类型 与 函数返回英语类型(关于获取局部变量的操作)
    Pipeline 问题处理
    【双目深度估计】——stereo net 分层细化实时网络
    C++ 委托妙用
    29.5.4 恢复数据
    【HackTheBox Topology】打靶记录
    朋友圈怎么定点发朋友圈?
    String 常用方法
  • 原文地址:https://blog.csdn.net/GAGGAAAAA/article/details/136386471