2016-09-15 17 views
0

我有這個對象,我想讓這樣的用戶在數據庫中沒有添加其他項時,當對象中的某個項具有相同的鍵名時。我該如何檢查javascript對象鍵中的等價物

{ 
"0360841d73bd74b268dcc3abad2555c0": { 
"file_dislikes": 0, 
"file_likes": 0, 
"slang": "mmmmmmmmm", 
"slangDefine": "dddddddddd", 
"slangExample": "ddddddd", 
"slangID": "0360841d73bd74b268dcc3abad2555c0", 
"time_date": "2016-09-15T16:28:19.384Z", 
"user_id": "0Uwx4oXQVEckArRSZNerwhfDZFF3" 
}, 
"072794611d87924ac134bc87ae202c05": { 
"file_dislikes": 0, 
"file_likes": 0, 
"slang": "damnit", 
"slangDefine": "Damnit", 
"slangExample": "Damnit", 
"slangID": "072794611d87924ac134bc87ae202c05", 
"time_date": "2016-09-14T13:40:47.745Z", 
"user_id": "bHDKSU6aorX9efzBCHyVI4JBTh53" 
} 
} 

我有對象vm.slangs

for (var keys in vm.slangs) { 
    var getThisObject = vm.slangs[keys]; 
    if ((getThisObject.slang).toLowerCase() === ("Damnit").toLowerCase()) { 
      console.log("there is a slang with that name!"); 
      // Item cannot be added to database. 
     } 
    } 

我想這應該工作的項目,但它並不也許我做錯了什麼。

+1

假設'vm.slangs'指向你所顯示的對象結構,它*不工作。 https://jsfiddle.net/jkjhtdbv/ – 2016-09-15 16:51:26

+1

雖然你說*「...當對象中有一個項目具有相同的密鑰名稱」*時,實際上您正在測試*值*,而不是密鑰名稱。這可能是你的意思。你還沒有告訴我們什麼*「不起作用」*的意思。 – 2016-09-15 16:53:20

+1

當您在調試器中執行代碼時會發生什麼? – 2016-09-15 17:04:15

回答

1

你需要一個標誌並退出循環,如果找到了俚語並阻止插入數據庫。

var unique = true; 

for (var keys in vm.slangs) { 
    var getThisObject = vm.slangs[keys]; 
    if (getThisObject.slang.toLowerCase() === "Damnit".toLowerCase()) { 
     console.log("there is a slang with that name!"); 
     unique = false; 
     break; 
    } 
} 
if (unique) { 
    // add to db 
} 
+1

這可能是OP想要做的,但爲什麼他的原始代碼不工作? – 2016-09-15 17:03:24

相關問題