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

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)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容