• 已知 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);

    效果图

    结语

    点个赞啦!

  • 相关阅读:
    【Qt-19】按Q退出应用程序
    Windows2019部署IIS后,浏览文件变成下载的问题解决过程
    JS堆栈(知识点回顾)
    【毕业设计】机器视觉的图像拼接算法研究与实现 - python 深度学习
    如何部署 wfs 分布式服务
    Docker部署Go+Mysql+Redis
    FL Studio21最新演示测试版本下载FL水果V21
    卷积神经网络(VGG-16)海贼王人物识别
    数据结构六:线性表之顺序栈的设计
    【JavaEE初阶】 CSS的引入方式和选择器
  • 原文地址:https://blog.csdn.net/GAGGAAAAA/article/details/136386471