a.b.c.d.e字符串的处理

2021-11-20  本文已影响0人  易路先登
const input = {
            'a.b.c.d.e':'abcde',
            'a.d.f':'adf',
            'f.o.l':'fol',
            'f.g.h.i':'fghi'
        }
        let obj = {
            a:{
                b:{
                    c:{
                        d:{
                            count:90
                        }
                    }
                }
            }
        }
        let str =  'a.b.c.d.count'
        function getValue(str){
            let keyArr = str.split('.');
            //['a','b','c']
            return keyArr.reduce((currentObj,currentKey)=>{
                return currentObj=currentObj[currentKey]
            },obj)
        }
        console.log(getValue(str))
var returObj = {}
        var input = {
            'a.b.c.d.e':'abcde',
            'a.d.f':'adf',
            'f.o.l':'fol',
            'f.g.h.i':'fghi'
        }
        for(var key in input){
            generatorObj(key,input[key])
        }
        function generatorObj(key,value){
            var keyArr = key.split('.');
            keyArr.reduce((currentObj,currentKey,index)=>{
                if(index < keyArr.length-1){
                    return currentObj=currentObj[currentKey]?currentObj[currentKey]:(currentObj[currentKey] = {})
                }else{
                    return currentObj[currentKey] = value
                }
                
            },returObj)
            return returObj
        }
        console.log(returObj)
上一篇 下一篇

猜你喜欢

热点阅读