上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

数组扁平化处理加上去重和排序

[复制链接]
  • TA的每日心情
    开心
    2022-3-7 09:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    22

    主题

    104

    回帖

    170

    积分

    中级工程师

    积分
    170
    发表于 2022-2-22 16:05:56 | 显示全部楼层 | 阅读模式
    //数组扁平化后去重并且升序排列
      Array.prototype.flat1=function(){
        let arr=this
       const process_arr=  arr.map(function(item){
             if(Array.isArray(item)){
              return  item.flat1()
             }else{
              return item
             }
        })
        return [].concat(...process_arr)
      }
      Array.prototype.flat2=function(){
        let arr=this
       while(arr.some((item)=>Array.isArray(item))){
         arr=[].concat(...arr)
       }
       return arr
      }
    function combine(arr,...fns){
      let res=undefined
         for(let i=0;i<fns.length;i++){
          res=fns[i].call(arr,res)
         } 
        return res
    }
    function  removeDuplicateArrItem(arr){
      return [...new Set(arr)]
    }
    function WashArr(arr){
      return arr.sort((a,b)=>a-b)
    }
    
      const arr=[1,2,3,[4,5,[678,[59,[35,61,[87]],1,2,3]]]]
      const arr1=[[[[4]],59],6]
      const arr3=[[33,44],5,5,5,[[99,99,[100,101]]]]
      // console.log(arr.flat1(),arr1.flat1(),"\n")
      console.log(arr3.flat1())
      console.log(combine(arr3,Array.prototype.flat1,removeDuplicateArrItem,WashArr),"\n")
      console.log(arr.flat2())
      console.log(combine(arr,Array.prototype.flat2,removeDuplicateArrItem,WashArr))
  • TA的每日心情
    开心
    2024-7-30 00:00
  • 签到天数: 122 天

    [LV.7]常住居民III

    29

    主题

    601

    回帖

    542

    积分

    专家

    积分
    542

    油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-2-22 20:04:57 | 显示全部楼层
    天不生先生,论坛万古如长夜
    回复

    使用道具 举报

  • TA的每日心情
    开心
    9 小时前
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-2-23 09:47:53 | 显示全部楼层
    没看太明白
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-3-7 09:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    22

    主题

    104

    回帖

    170

    积分

    中级工程师

    积分
    170
    发表于 2022-2-23 10:17:37 | 显示全部楼层

    应该是格式的问题,没有高亮,看起来有点乱
    回复

    使用道具 举报

  • TA的每日心情
    开心
    9 小时前
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-2-23 13:57:30 | 显示全部楼层
    rubinTime 发表于 2022-2-23 10:17
    应该是格式的问题,没有高亮,看起来有点乱

    头疼这markdown编辑框,好难用
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-3-7 09:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    22

    主题

    104

    回帖

    170

    积分

    中级工程师

    积分
    170
    发表于 2022-2-23 14:09:12 | 显示全部楼层
    王一之 发表于 2022-2-23 13:57
    头疼这markdown编辑框,好难用

    不会Markdown,那篇字符串去重我是直接vscode敲完后整块复制过来粘贴上去的,预览的时候背景还有整块黑色,发出去的时候就没了,颜色填充长度是根据字数来确定的
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表