3
是否可以更改JavaScript對象中參數的名稱?JavaScript(JQuery)更改參數的名稱
我的問題是由於JQuery AutoComplete對參數名稱非常挑剔,並且需要一個參數名稱(標籤或值)。
我的數據對象。
data....
data.receivers[].id
data.receivers[].name
data....
我想要做的是做一個別名/參考或類似的概念,像這樣。
data.receivers[].label = data.receivers[].name
所以我想改變一個參數從名稱到標籤。我這樣做了,但我不喜歡複製我相信.map所做的數據。
var callBack = function(data) {
var autoCompleteData = jQuery.map(data.receivers, function(receiver, i){
return {label: receiver.name, id: receiver.id };
});
$("input#reciever").autocomplete({
source: autoCompleteData,
focus: function(event, receiver) {
$("input#reciever").val(receiver.item.label);
return false;
},
select: function(event, receiver) {
$("input#reciever").val(receiver.item.label);
$("input#recieverId").val(receiver.item.id);
return false;
}
});
}
Ps。我可以從我的服務器更改JSON返回數據,但我希望保持名稱的邏輯性和直觀性,並且不會被強制按照JQuery的約束通過數據對象進行建模。
由於這是一個很好的答案。我將不得不考慮這一點。你的代碼是創建一個新的屬性並設置它通過一個循環。我想知道的是在JavaScript中也有概念,什麼是可能的,哪些不是。例如,如果某人可以對屬性進行名稱更改。就像更改引用/指針名稱一樣,不進行任何計算。 – Farmor
據我所知,這是做到這一點的唯一方法:如果不創建新的屬性並刪除原件,則無法重新映射屬性。 –