2016-10-05 22 views
-1

私はメイン配列とアイテムの配列を含むオブジェクトを持っています。私は、項目を含むオブジェクトがメインの配列インデックスと一致するかどうかを確認したい。一致する場合は、コンソールに書き込みます。Javascriptインデックスと配列の値の比較

var mainItems = [0,1,2,3,4,5,6,7,8,9,10,"car", "boat", "truck", "plane"]; 
var nonStandardItems = 
{ 
    "items": [ 
     { 

      "value": "8", 
      "code": "8ic" 
     }, 
     { 
      "value": "boat", 
      "code": "10bt" 
     } 
    ], 

} 

if(nonStandardItems.items.slice(-1)[0].value == mainItems.indexOf(nonStandardItems.items.slice(-1)[0].value) ){ 
    console.log("you are right"); 
} 

ただし、値は-1になり、エラーになります。私は何が欠けていますか?

EDIT 私はすべてのデータソースからすべてのデータを取得していますが、すべてが迷惑データを含んでいます。ただし、迷惑データ配列の最後の項目は必要な項目です。

私のapiリクエストの結果が "期待"または "標準"のデータセットと一致するかどうかを確認したいと思います。たとえば、私のnonStandardItemsオブジェクトは、私がAPIから返すものの例です。

私はそれを解析し、items配列のLAST項目が私の標準項目配列のインデックスと一致する値を持っているかどうかを確認します。私の迷惑メールアイテムの配列には数値とテキストのデータが含まれていますが、最後のアイテムには常に数値またはテキストのコードがあります。

例が作成されて急いでいたので、私はスペル、文法的な説明ミスをお詫びします。コンソールがスローしたエラーは、nonstandardItems.items [-1] .valueが存在しなかったことです。

+2

私は本当にあなたがやろうとしものを得るいけません。あなたはそれをよりよく説明できますか? – Kiksen

+0

あなたは '.value == indexOf(。.code)'、 '.value'ではなく、2回のように聞こえます – Bergi

+1

あなたはどんなエラーを受けていますか? – Bergi

答えて

0

使用フィルタ():

if (nonStandardItems.items.filter(v => mainItems.indexOf(v.code) == v.value).length > 0) { 
    console.log("you are right") 
} 
関連する問題