0
這不像一個請求評論的問題。可靠的兩個JavaScript對象並改變它們的關鍵名稱
我有兩個對象,我想合併它們,取第二個值,併合並(覆蓋)第一個,同時保留第一個的屬性名稱。
第二個對象中的鍵名對於人類消費而言很長並且是描述性的,而第一個對象的鍵名稱在保存字節時是簡潔和難看的。
我在使用jQuery之前,第二個對象的可讀性成爲一個問題,所以現在我已經把我自己的方式扔在一起了。但是,由於遍歷對象不會按原始順序返回它們的鍵/值對,我想知道這是否是一個長期可行的解決方案。希望代碼能更好地解釋這一點。
想法,請提前致謝! :)
var ob = {}, i = 0, k, pArr = [];
for(k in p){
if(p.hasOwnProperty(k)){
pArr.push(k);
}
}
for(k in c){
if(c.hasOwnProperty(k)){
ob[pArr[i]] = c[k];
}
i++;
}
ob對象現在具有第二個對象的所有屬性,但是具有第一個對象的所有屬性。這確實有用,但感覺很難看,而且我想知道是否有更好的方法。
,讓我覆蓋有第二對象,每值值的對象,但不請允許我保留第一個對象的屬性名稱。但我正在調整它。 – Tom
那麼,簡單地將'ob [p_key] = c [c_key]'改爲'p [p_key] = c [c_key]',然後用第二個對象的所有值更新第一個對象。但是如果你想要所有未映射的p鍵,你需要事先用'p'的所有值初始化ob'。 –
使用我的方法,重複這個過程100000次,所有的屬性在出路中的變化與在途中一樣......這只是偶然嗎? – Tom