2011-07-24 2 views
2

この定義オブジェクトを考えてみましょう:再マッピングオブジェクトのプロパティ

var map = { 
    'Username': 
    { 
    'user-name': 'userName', 
    'first-name': 'fName', 
    'last-name': 'lName', 
    'active': 'isActive' 
    } 
} 

私は、例えば、このオブジェクトを再マップするにはどうすればよい:

data: 
{ 
    'userName': SamN, 
    'fName': Sam, 
    'lName': Norbert, 
    'isActive': 1 
} 

答えて

5
:このような出力を得るために

data: 
{ 
    'user-name': SamN, 
    'first-name': Sam, 
    'last-name': Norbert, 
    'active': 1 
} 

プロパティを繰り返し処理するだけです:

for(var prop in data) { 
    if(data.hasOwnProperty(prop) && prop in map.Username) { 
     data[map.Username[prop]] = data[prop]; 
     delete data[prop]; 
    } 
} 

オブジェクトをインプレースに変更します。新しいオブジェクトを作成する場合は、新しい空のオブジェクトにプロパティを設定するだけです。

代わりにmap.Usernameのプロパティを反復処理することもできます。

+0

これを関数に入れると、JSは参照渡しをサポートしていますか?または、私は一時的なオブジェクトを作成しますか? – HyderA

+0

@gAMBOOKa:オブジェクトは常に参照渡しされます。 –

関連する問題