2016-09-15 8 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/ –

+1

*「同じキー名を持つオブジェクトにアイテムがあるとき」*、実際にキーの名前ではなく*の値をテストしているとき。それはおそらくあなたが意味するものです。そして、あなたは*何が「うまくいかない」のかを教えてくれませんでした。 –

+1

デバッガのコードをステップ実行するとどうなりますか? –

答えて

1

スラングが見つかった場合はフラグが必要でループを終了し、dbへの挿入を防止します。

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がやりたいことかもしれませんが、なぜ彼の元のコードはうまくいきませんか? –

関連する問題