2017-04-17 2 views
0

I은 ​​할 수득여러 요소에서 indexOf()를 올바르게 사용하려면 어떻게해야합니까?

var clickedImages = Session.get('clickedImages'); 
clickedImages = clickedImages.map(function(a) {return a.imageId;}); 

console.log("clickedImages Ids are: " ,...clickedImages); 

배열 :

clickedImages 아이디는 : TaTg6hf3Gok5NsWYp XzGxS3LDtJ4DrXSdc 8CdapJoeSxSScHKFs

var TotalOfallImageIds = buyList.find().fetch().map(function(u) { return u._id; }); 
console.log(TotalOfallIds); 

수득 어느 :

["yzML7ZLvkWkjBBvq5", "XzGxS3LDtJ4DrXSdc", "TaTg6hf3Gok5NsWYp", "8CdapJoeSxSScHKFs"] 

그러나 아래 코드를 실행할 때 왜 거짓을 얻습니까?

(TotalOfallImageIds.indexOf(clickedImages) > -1); 

수익률 위의 코드 : 거짓

내가 제대로 여러 요소와 같이 IndexOf()을 어떻게 사용합니까?

+0

가능한 복제 한 배열과 같이 IndexOf를 반복 할 필요가 ([한 배열의 모든 요소가 제 2 배열에 있는지 확인] http://stackoverflow.com/questions/8628059/check-if-every-element-in-one-array-is-in-a-second-array) – Santi

+0

클릭 한 이미지를 반복하고 각각 'indexOf'를 호출하십시오. 그들. – Barmar

+0

'TotalOfallImageIds.indexOf (clickedImages)'가 뭘하고 싶니? 구체적으로 무엇을 검사 할 것인가? –

답변

0

.indexOf이 항목을 비교, 그래서 대신에 당신의 다른

var allClicked = true; 

for (var i = 0; i < clickedImages.length; i++) { 
    var clickedImg = clickedImages[i]; 
    allClicked = TotalOfallImageIds.indexOf(clickedImg) > -1 && allClicked;  
} 
1

clickedImages 클릭에 의해 참조 화상 ID의 ===배열이다 TotalOfallImageIds에 엔트리가 없기 때문에. 문자열에 === 배열이 없습니다 (피연산자가 같은 유형이 아닌 경우 ===의 결과는 항상 false이므로). indexOf은 비교를 위해 ===을 사용합니다.