• 面试题之去重


    题目:

    var listData=[
        {name:"李明",sort:"23"},
        {name:"李明",sort:"423"},
        {name:"李明",sort:"233"},
        {name:"小王",sort:"33"},
        {name:"小王",sort:"43"},
        {name:"小王",sort:"13"},
        {name:"小李",sort:"43"},
        {name:"小李",sort:"53"},
        {name:"小李",sort:"63"},
        {name:"小赵",sort:"63"},
        {name:"小赵",sort:"83"},
    ]
    这个名字一样的去重 然后保留 sort数值最大

    答案:

    listData.sort((a,b)=>{return b.sort-a.sort})
    let obj = {}
    let newL = listData.reduce((current,next)=>{
    obj[next.name]?'':obj[next.name] = true&&current.push(next)
    return current
    },[])
    console.log(newL)

    知识点:

    reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。(和for循环类似)

    array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

    function(total, currentValue, currentIndex, arr)回调函数,数组array中每条数据都会执行此回调
    total为初始值。
    currentValue为当前数值。
    currentIndex为当前数值的索引值。
    arr为被执行的数组

    initialValue为设定的初始值,可有可无。建议有,如果没有初始值array为空数组时会报错。


    参考链接 https://www.jianshu.com/p/e375ba1cfc47











  • 相关阅读:
    IDEA复制module
    input输入框限制输入数字(含小数)
    毕设周总结---3
    皮尔森相关系数算法
    毕设周总结---2
    毕设周总结---1
    解释器模式实例
    架构模式——解释器模式
    课后作业---质量属性
    软件架构师如何工作
  • 原文地址:https://www.cnblogs.com/dandanyajin/p/14592309.html
Copyright © 2020-2023  润新知