Object.assign doesn't deep copy an object. considering following code it should print 0 0 0 1 but it is printing 0 0 1 1.
var obj = {
  "value": {
    "default": 0
  }
};
var newo = Object.assign({}, obj);
console.log(obj.value.default);
console.log(newo.value.default);
newo.value.default = 1;
console.log(obj.value.default);
console.log(newo.value.default);I know we can use JSON.parse(JSON.stringify(obj)). but is that a best practice solution?

JSON.parse(JSON.stringify(obj))is the way to go