zoukankan      html  css  js  c++  java
  • 处理数据

    上面的数据结构中,不同层级的key可能会相同,实现一个方法,调用时更新上面数组的key值,使所有的key对应的值更新为新的随机数,并保证更新前相同的key更新为新值后也依然相同即可。

    let data = [{
        key:0.1234,
        child:{
            key:0.2352,
            child:{
                key:0.2354,
                child:{
                    key:0.9737
                }
            }
        }
    },{
        key:0.1234,
        child:{
            key:0.2352,
            child:{
                key:0.2354,
                child:{
                    key:0.9737
                }
            }
        }
    }]
    

    递归方式

    function handleData(data){
        let map = new Map()
        for(let i = 0;i < data.length;i++){
            let item = data[i]
            let deep = (obj) => {
                if(map.has(obj.key)){
                    obj.key = map.get(obj.key)
                }else{
                    let random = parseFloat(Math.random().toFixed(4))
                    map.set(obj.key,random)
                    obj.key = random
                }
                if(obj.child){
                    deep(obj.child)
                }
            }
            deep(item)
        }
        return data
    }

    序列化方式

    function handleData(data = data){
        let json = JSON.stringify(data)
        let arr = Array.from(new Set(json.match(/0.d+/g)))
        arr.map(item => {
            let random = Math.random().toFixed(4)
            json = json.replace(new RegExp(item,'g'),random)
        })
        return JSON.parse(json)
    }
    以自己现在的努力程度,还没有资格和别人拼天赋
  • 相关阅读:
    专职DBA-MySQL主从延时复制
    专职DBA-MySQL主从异步复制
    专职DBA-MySQL连接启动与多实例数据库
    Java日期时间2
    Java日期时间
    763. Partition Labels
    377. Combination Sum IV
    459. Repeated Substring Pattern
    784. Letter Case Permutation
    526. Beautiful Arrangement
  • 原文地址:https://www.cnblogs.com/zhenjianyu/p/13357985.html
Copyright © 2011-2022 走看看