2017-11-06 4 views
1

第一の目的は、(それを簡単にのための唯一の1つの要素で)マップです:Javascriptオブジェクトパスとしてオブジェクトキーを使用する方法は?

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は最初からすでに存在しないことに注意してください

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

、これは上記のコードを使用して作成されていません: だから、それは次のようになります。 私の質問は、上記の構造を達成するためにdataMapオブジェクトをどのように書くべきですか?

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

は、このような

+0

? –

+0

ええと、私は、forEachメソッド内の最初の解決策では、struct [value]がstruct.Feedに等しいことを意味します。私が得たいのは、構造体[値]がstruct.Feed.nextと等しいことです。 –

+0

あなたが持っているものと必要なものを追加してください。 –

答えて

1

何かありがとう:

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

を "次の" プロパティを追加します。

は、それが(それが動作していない)ようにすることです

struct.Feed.next = {}; 

stの状態のコピーを作成するruct.Feed.next:

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

削除フィールド:

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

オブジェクトは今:私はパスを見つけるのですか

struct {Feed: next{State: "xy"}} 
関連する問題