2012-08-01 91 views
0

假設我有一個JavaScript對象,它由幾個鍵/鍵對和JavaScript對象構成。JavaScript對象操作的麻煩

var obList = { key:{..}, key2:{..}, key3:{..}, ... } 

我構建了一套新的,obList2

var obList2 = { key:{..}, key2:{..}, key3:{..}, ... } 

我想編寫一個基於obList2修飾obList功能。我遇到的初始步驟是刪除obList中所有不存在關鍵字的obList中的所有對象。任何想法/實施這將是有幫助的。謝謝!

回答

1

您可以使用for .. in循環遍歷對象,並使用Object.hasOwnProperty()檢查屬性是否存在。

實施例:

for (var prop in obList) { 
    if (obList.hasOwnProperty(prop) && !obList2.hasOwnProperty(prop)) { 
     delete obList[prop]; 
    } 
} 

第一個條件是針對修改Object.prototype和第二檢查一種保障以查看是否屬性不存在於第二物體上。

+0

太棒了!感謝您的答覆。 – zallarak 2012-08-01 02:17:54

0

代碼的基本元素:能夠檢查對象中是否缺少特定的鍵。你可以這樣做:

if (window.bla === undefined) { 
    console.log("Key bla is missing!") 
} 
+0

如果某個屬性專門設置爲「undefined」,該怎麼辦? – Radu 2012-08-01 01:58:30

+0

偉大的一點。不知道它是否適用,但我今天確實學到了一些東西 - 我不會再比較那些未定義的東西:-)。謝謝,拉杜! – 2012-08-01 02:01:52