Javascript如何使用对象键作为对象路径?

时间:2017-11-06 10:27:28

标签: javascript

第一个对象是一个地图(只有1个元素才能使它变得简单):

let dataMap = {
      Feed: "data",
    };

我需要将这些键值分配给分隔的路径:

Object.keys(dataMap).forEach((value) => {
  struct[value] = Object.assign({}, struct[value], {
    "State": obj.Digital[dataMap[value]].State,
  });
});

console.log(struct);

现在结果如下所示:

struct: { 
 Feed: { 
  State: "xy"
  } 
}

我想要做的是将Feed键更改为Feed.next。 所以它看起来像:

struct: { 
     Feed: {
      next: {
       State: "xy"
       } 
      }
     }

请注意,struct.Feed从一开始就存在,因此不会使用上面的代码创建。 我的问题是我应该如何编写dataMap对象来实现上面的结构?

是不是(它不起作用):

let dataMap = {
          Feed[next]: "data",
        };

谢谢,

1 个答案:

答案 0 :(得分:1)

这样的事情:

var struct =  {Feed:{ State: "xy"}};

添加“下一个”属性:

struct.Feed.next = {};

在struct.Feed.next中创建State的副本:

struct.Feed.next = JSON.parse(JSON.stringify(struct.Feed));

删除字段:

delete struct.Feed.State
delete struct.Feed.next.next

对象现在是:

struct {Feed: next{State: "xy"}}