2016-03-22 4 views
0

私はキーが「カウント」のカテゴリに属しているかどうかを確認する機能の書き込みをしようとしている:キーがある場合でも、常にfalseを返し、しかし次の "in"演算子がこの配列内の文字列を見つけられないのはなぜですか?

isCountKey (key) { 
    const countKeys = [ 
    'buildingCount', 
    'panoramaCount' 
    ] // TODO find a better way to check for count keys 
    console.log(key) 
    console.log(key in countKeys) 
    return key in countKeys 
} 

console.logbuildingCountpanoramaCount

name 
List.vue?2658:38 false 
List.vue?2658:42 number 
List.vue?2658:38 false 
List.vue?2658:42 buildingCount 
List.vue?2658:38 false 
List.vue?2658:42 panoramaCount 
List.vue?2658:38 false 

これはなぜですか?文字列と同じ名前を持つプロパティが存在するかどうかを確認するために

+1

あなたは数値インデックスとして...オブジェクトを使用する配列を持っている.. 'countKeys = {[ 'buildingCount':本当、 'panoramaCount':真 }' –

+0

ここにあるキーは0と1であるため、 – Alexander

+0

か 'countKeys .indexOf(key)!= -1'を使用します –

答えて

0

inのテストではなく、同じを持つプロパティ。 "length"または"0"でテストしても問題ありません。

the indexOf methodを使用して、配列の一致する値を検索します。

0

使用indexOf代わり

// If element is not in array, indexOf returns -1, not returning -1 means the key is in the array 

var isKeyInArray = (countKeys.indexOf(key) != -1); 
console.log(isKeyInArray) 
関連する問題