zoukankan      html  css  js  c++  java
  • 面试题之去重

    题目:

    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











  • 相关阅读:
    美国州名来源
    SQL Constraint/Index
    英语中的 姓氏/Surname
    GNU glibc
    英语人名探源/字母升序排列
    About 'atoi'
    封装一个类似jquery的ajax方法
    函数柯里化
    AngularJS实现TodoMVC
    webpack简单使用
  • 原文地址:https://www.cnblogs.com/dandanyajin/p/14592309.html
Copyright © 2011-2022 走看看