2016-11-18 6 views
-4

enter image description hereJavascriptが - 配列

内の数字はこれはひどい状況であるかどうかを確認することはできません。

数字が所定の配列に含まれているかどうかをチェックしたいと思います。 しかし、それは不思議な結果を返します。

ここに私のキャプチャされたコンソールイメージです。

また、配列の数値と型のタイプもチェックします。 青は数字型の要素を持ち、赤色の要素は文字列型の要素を持っています。 1つの数字については、青の数字は数字のタイプであり、黒の数字は文字のタイプです。 しかし、型は結果に何の影響も与えません。

すべての結果を確認した後、10桁以上の数字を2桁の数字で解決して問題が発生していると考えました。 1〜10の数字は奇妙な状況にはなりません。

何が問題ですか?これをどうすれば解決できますか?


ここは私のコードです。 これは長いコードの一部ですので、私はこれを少しずつ調整して別々に理解しています。

object = {'2': obj,'3': obj,'10': obj,'11': obj,...} 

var array = Object.keys(object); 
var newArray = array.map(function(x) { 
    return parseInt(x, 10) 
}); 
var newNumber = parseInt(number, 10) // number is from above code, just a number. 

console.log(newArray); 
console.log(newNumber); 
console.log(newNumber in newArray); 

console.log(array); 
console.log(number.toString()); 
console.log(number.toString() in array); 
    ` 
+6

あなたのコードを見ることができないので、あなたが間違っていることを知っている人 –

+0

申し訳ありません。私は自分のコードを追加しました。それは長いコードの一部なので、私はそれを説明するのが難しいです。追加情報が必要な場合は、お知らせください。 –

+3

'in'を使って配列内の値を調べることはできません。その配列に' indexOf'を使ってください。 – adeneo

答えて

0

あなたはおよそArray.indexOfhereを見つけることができますArray.indexOf

var array = [2,3,10,11,12,13,14,18,20,21,25]; 
var myObject = {'2': obj,'3': obj,'10': obj,'11': obj} 

for (let key in myObject){ 
    if (array.indexOf(parseInt(key)) == -1){ //If the value is not found 
     //Element not found 
    } 
    else{ 
     //Element found 
    } 
} 

詳細情報を試すことができます。

0

要素が配列内に存在するかどうかをチェックするには、newArray.indexOf(newNumber) !== -1またはnewArray.indexOf(newNumber) > -1のいずれかを次のようにチェックする必要があります。

また、array.map(function(x) { return parseInt(x, 10) }のあなたの上記のコードでは、あなたが作業するコードarray.map(

で開かれたブラケットを閉じませんでした:

var obj = {}; 
 
var object = {'2': obj, '3': obj, '10': obj, '11': obj}; 
 

 
var array = Object.keys(object) 
 
var newArray = array.map(function(x) { 
 
    return parseInt(x, 10) 
 
}); 
 
    
 
var number = 10; 
 
var newNumber = parseInt(number, 10); // number is from above code, just a number. 
 

 
console.log(newArray); 
 
console.log(newNumber); 
 
console.log(newArray.indexOf(newNumber)); 
 
console.log(newArray.indexOf(newNumber) !== -1); // To get true or false you need either this or the below one 
 
console.log(newArray.indexOf(newNumber) > -1);