首页 > 其他 > 详细

处理数据 - handleData

时间:2020-07-22 00:43:57      阅读:86      评论:0      收藏:0      [点我收藏+]

上面的数据结构中,不同层级的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 = Math.floor(Math.random() * 100)
                map.set(obj.key,random)
                obj.key = random
            }
            if(obj.child){
                deep(obj.child)
            }
        }
        deep(item)
    }
    return data
}

function handleData(data){
    let json = JSON.stringify(data)
    let arr = json.match(/0\.\d+/g)
    arr = Array.from(new Set(arr))
    arr.map((item) => {
        let random = Math.floor(Math.random() * 100)
        json = json.replace(new RegExp(item,‘g‘,random))
    })
    return JSON.parse(json)
}

  

处理数据 - handleData

原文:https://www.cnblogs.com/zhenjianyu/p/13357985.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!