0

I have string

let str = "class1.class2.class3=d23dasdasd23dasdasdas".

How can I build an object from this string ?

I need:

    {
        "class1" : {
            "class2": {
                "class3": "d23dasdasd23dasdasdas"
            }
        }
    }
Mihai Alexandru-Ionut
  • 47,092
  • 13
  • 101
  • 128
Aumy
  • 19
  • 1

1 Answers1

0

You can use reduceRight method by passing a callback function as argument.

let obj ="class1.class2.class3=d23dasdasd23dasdasdas";
let [keys, value] = obj.split('=');
keys = keys.split('.')
let result = keys.reduceRight((obj, elem) => ({[elem]: Object.keys(obj).length === 0 ? value : obj }), {});
console.log(result);
Mihai Alexandru-Ionut
  • 47,092
  • 13
  • 101
  • 128