Как превратить строку в точечной нотации во вложенный объект со значением? - PullRequest
0 голосов
/ 04 августа 2020

Я пытался сделать это с помощью split и reduce, но не могу понять.

Вот моя строка и значение

const str = "stack.overflow.is.cool"
const value = "Indeed"

Я хотел бы превратить это в

{ stack: 
  { overflow: 
    { is: 
      { cool: indeed }
    }
  }
}

1 Ответ

2 голосов
/ 05 августа 2020

С картой. Также возможно с сокращением и рекурсивной функцией ..

const str = "stack.overflow.is.cool"
const value = "Indeed"

let obj = {};
let pointer = obj;
str.split('.').map( (key, index, arr) => {
  pointer = (pointer[key] = (index == arr.length - 1? value: {}))
});

console.log(JSON.stringify(obj, null, ' '));
...