处理数据 - handleData
上面的数据结构中,不同层级的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)
}
以自己现在的努力程度,还没有资格和别人拼天赋

浙公网安备 33010602011771号