2016-01-20 54 views
-6

語句我有兩個對象時在控制檯顯示:沒有使用的console.log如果用在for循環

var obj = { first: "Romeo", last: "Montague" }; 
var search = { last: "Montague" }; 

我的目標是找到,如果第二個對象(search)出現在第一位的,如果是這樣的話,它就是console.log

首先,我得到兩個對象的鍵:

var objKeys = Object.keys(obj); 
var searchKeys = Object.keys(search); 

然後我試圖遍歷槽兩個鍵並進行比較,如果它們匹配,console.log從第一OBJ(obj)的值。

//for every key in object 
for(var x = 0; x < objKeys.lenght; x++) { 
    //for every key in search 
    for(var y = 0; y < searchKeys.length; y++) { 
    //see if a key matches 
    if(searchKeys[y] == objKeys[x]) { 
     //see if the value matches 
     if(obj[objKeys[x]] == search[searchKeys[y]]) { 
     console.log(obj[objKeys[x]]); 
     } 
     else { 
     console.log("value not found"); 
     } 
    } 
    else { 
     console.log("key not found"); 
    } 
    } 
} 

現在,當我運行這段代碼時,控制檯中沒有任何顯示。沒有錯誤或消息。任何人都可以指出我做錯了什麼?

我已經創建了此代碼的jsFiddle,如果您想修補。

+4

你有一個錯字:'lenght' –

+0

的錯字 - 剛剛在小提琴測試 – Craicerjack

+0

感謝,得到它現在的工作 –

回答

0

您在第一個循環中拼錯了length

還要考慮使用for-in循環,如:

for (property in obj) { 
    if (obj.hasOwnProperty(property)) { 
     //... 
    } 
}