2016-12-06 256 views
-7

我在一個角度範圍內有一個基本上包含每個迭代中的對象的數組。我之前使用了indexOf()函數來檢查數組中是否存在值 - 但是如何檢查對象字值中是否存在值?在javascript中搜索對象中的值

我想使用一個foreach循環,只是檢查一個單詞是否存在於規則數組中,如下所示 - 如何實現這個最好的方法?

rules = []; 

rules[0] = { word:"house"} 
rules[1] = { word:"shoes"} 
rules[2] = { word:"tools"} 
+1

'Object.values(O)。有些(V => v ===針)'? – Ben

+4

[請在發帖前搜索](/ search?q =%5Bjs%5D + search + array + of + objects),關於該主題有幾十個問題(有數百個答案),您的問題至少回答一個其中可能有幾個。更多關於搜索[這裏](/幫助/搜索)。 –

+3

可能的重複[如何檢查數組是否包含JavaScript中的對象?](http://stackoverflow.com/questions/237104/how-do-i-check-if-an-array-includes-an- object-in-javascript) –

回答

1

rules = [] 
 

 
rules[0] = { word:"house"} 
 
rules[1] = { word:"shoes"} 
 
rules[2] = { word:"tools"} 
 
rules[3] = { sentence:"horse"} 
 

 
rules.forEach(rule => { 
 
    if (rule.word) { 
 
     console.log('Exist. Value:', rule.word) 
 
    } else { 
 
     console.log('Doesn\'t Exist.') 
 
    } 
 
})

希望這有助於!

1
for(var i =0;i < rules.length;i++){ 
    if(rules[i].word === 'valueYouWantToCheck'){ 
    // do whatever you want to do 
    } 
} 

嘗試...... :)

+0

他提到了問題,他想用''for forE'''循環。 – bharadhwaj

+0

@bharadhwaj foreach將服務相同。只是他必須通過索引和item.forEach(someFunction)和像someFunction(index,item)這樣寫函數{} –

+0

這是一個工作解決方案,我同意!但他明確提到他**需要使用'''forEach''循環。這就是我通知你的原因!而且他只是想知道這樣一個關鍵字是否存在,而不是將它與某個值進行比較,我希望!否則,這是一個很好的解決方案! – bharadhwaj

-1
rules = []; 

rules[0] = { word:"house"} 
rules[1] = { word:"shoes"} 
rules[2] = { word:"tools"} 

for(var i=0; i<rules.length ; i++) 
{ 
    rules[i]["word"]=='valueforComparison'; // or rules[i].word=='valueforComparison'; 
} 
1

您可以使用此

var rules = []; 
rules[0] = { word:"house"} 
rules[1] = { word:"shoes"} 
rules[2] = { word:"tools"} 
rules.forEach(function(item){ 
    console.log(item.word) // your word of choice 
}) 

您還可以使用filter功能。如果你需要的單詞匹配,將返回對象,否則它會返回一個空數組

var getValue = rules.filter(function(item){ 
    return item.word=='house'; 
}) 
console.log(getValue) 

除此之外,您還可以使用.find方法

rules.find(function(item){ 
    return item.word=="house"; 
})