2016-10-05 7 views
-1

주 배열과 항목 배열을 포함하는 개체가 있습니다. 항목이 들어있는 객체가 주 배열 색인과 일치하는지보고 싶습니다. 일치하면 콘솔에 기록하십시오.자바 스크립트 색인과 배열 값 비교

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 뿐이며 오류가 발생합니다. 내가 뭘 놓치고 있니?

편집 모든 데이터는 정크 데이터를 포함하고 있습니다. 그러나 정크 데이터 배열의 마지막 항목은 필요한 항목입니다.

내 API 요청의 결과가 "예상"또는 "표준"데이터 세트와 일치하는지 확인하고 싶습니다. 예를 들어, 내 nonStandardItems 객체는 내가 API에서 얻은 결과의 예입니다.

구문 분석하고 항목 배열의 마지막 항목에 내 표준 항목 배열의 색인과 일치하는 값이 있는지 확인합니다. 내 정크 항목 배열에는 숫자 및 텍스트 데이터가 포함되어 있지만 마지막 항목에는 항상 예상되는 숫자 또는 텍스트 코드가 포함됩니다.

예제가 고안되어 돌진했기 때문에 철자법, 구문 및 설명 실수에 사과했습니다. 콘솔이 던진 오류는 nonstandardItems.items [-1] .value가 존재하지 않는다는 것입니다.

+2

내가 정말이 일을하려고 것을 얻을 해달라고. 더 잘 설명해 주시겠습니까? – Kiksen

+0

'... .value == indexOf (... .code)','.value'가 아닌 소리가 두 번 나타납니다. – Bergi

+1

어떤 오류가 발생합니까? – Bergi

답변

0

사용 필터() :

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