2015-11-03 46 views
-1

我想知道它是否有一種方式循環遍歷所有對象並獲取屬性並選擇要用另一個名稱對象替換的屬性?如何替換Javascript對象中的屬性名稱

到目前爲止,我設法得到屬性名稱,我可以在我的下拉列表中選擇它們[名稱,姓氏和大小],但我無法弄清楚如何根據我選擇的屬性來替換屬性本身。例:[名字,姓氏,大小] - > [名字,姓氏,大小]

var tempData = [{ 
 
    "name": "Andy", 
 
    "lastname": "Hello", 
 
    "size": "176cm" 
 
}, { 
 
    "name": "John", 
 
    "lastname": "doo", 
 
    "size": "180cm" 
 
}, { 
 
    "name": "Karen", 
 
    "lastname": "World", 
 
    "size": "186cm" 
 
}, { 
 
    "name": "Alex", 
 
    "lastname": "Roy", 
 
    "size": "196cm" 
 
}] 
 
for (var i = 0; i < tempData.length; i++) { 
 
    for (var p in tempData[i]) { 
 
    $('#title').find('select[name="title-select"]').append($('<option/>', { 
 
     value: p, 
 
     text: p, 
 
     id: p 
 
    })); 
 
    } 
 
} 
 
for (var i = 0; i < tempData.length; i++) { 
 
    for (var p in tempData[i]) { 
 
    $('#parent').find('select[name="parent-select"]').append($('<option/>', { 
 
     value: p, 
 
     text: p, 
 
     id: p 
 
    })); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="title"> 
 
    <select name="title-select"> 
 
    <!-- title option --> 
 
    </select> 
 
</div> 
 

 
<div id="parent"> 
 
    <select name="parent-select"> 
 
    <!-- parent option --> 
 
    </select> 
 
</div>

+1

首先要指出的是,我不認爲你的示例代碼有效。其次,你是否試圖替代對象的屬性名稱本身?或者只是在下拉菜單中顯示的名稱? –

+0

@JonathanBrooks,我修復了代碼,我忘了放置jquery庫,我想基於我選擇的對象屬性本身進行替換。 – AndyHe

+0

爲什麼我仍然有一個-1 .... @JonathanBrooks – AndyHe

回答

1

喜歡這個?

var tempData = [{ 
    "name": "Andy", 
    "lastname": "Hello", 
    "size": "176cm" 
}, { 
    "name": "John", 
    "lastname": "doo", 
    "size": "180cm" 
}, { 
    "name": "Karen", 
    "lastname": "World", 
    "size": "186cm" 
}, { 
    "name": "Alex", 
    "lastname": "Roy", 
    "size": "196cm" 
}]; 

tempData.forEach(function(o) { 
    o.firstname = o.name; 
    delete o.name; 
}); 
+0

謝謝,這就是我一直在尋找 – AndyHe

+0

你介意接受答案是否正確? – Lee