2016-10-25 2 views
0

이 코드는 HTML 구조를 반복하고 해당 데이터 속성을 기반으로 배열을 작성합니다. foreach 루프 내에서 조건문을 실행하고 배열 내에 count 변수가 있는지 확인하고 싶습니다. 나는 inArray()을 보았지만 associative arrays과 잘 맞지 않습니까?변수가 jQuery의 연관 배열 내에 있는지 확인하십시오.

여기 여기 배열 빌드 JS 인 HTML

<div class="dfp" data-adposition="<?php echo $dfpPos; ?>" data-dfpcode='<?php echo $dfpCode; ?>'> 
</div> 

<div class="dfp" data-adposition="<?php echo $dfpHalfPos; ?>" data-dfpcode='<?php echo $dfpHalfCode; ?>'> 
</div> 

이다.

var dfpObj = { "adverts" : [] }; 

$(".dfp").each(function(){ // PROCESS DFPS 
    var code = $(this).data("dfpcode"); 
    var position = $(this).data("adposition"); 
    var dfp = { 
     "code": code, 
     "position": position 
    } 
    dfpObj.adverts.push(dfp); 
}); 

내 IF 문.

if($.inArray(count, dfpObj.adverts) !== -1) { 
    var dfp = $('.dfp[data-adposition=' + count + ']'); 
    var dfpcode = $(dfp).data("dfpcode"); 
    var dfppos = $(dfp).data("adposition"); 
    myfunction(dfpcode, dfppos); 
} 
// count is within a foreach loop so at the end of the loop is $count++ 
+0

1. JavaScript에는 "연관 배열"이 없습니다. 숫자로 색인화 된 배열과 문자열을 키로 사용하는 객체가 있습니다. 2. "연관 배열"(a.k.a. 객체)을 사용하지 않아도'dfpObj'라는 객체가 있습니다.이 객체는'adverts'라는 속성으로 일반 배열을 가지며'$ .inArray'를 실행합니다. 3. 그럼에도 불구하고 나는 무엇이 '셀 수있는 것'인지 모르겠다. 배열과 같은 것 같지 않다. -'adverts'는 객체의 배열이다. 그래서 객체의 배열이다. 동일한 값을 가지고있는 것이 아니라 동일한 것을 가리키면 동일합니다. – vlaz

+0

실제로 '카운트'를보고 어떻게 사용하는지, 나는 그것이 무엇인지 혼란 스럽습니다. 그것은 정말로 단순한 숫자입니까? 이 경우 객체 배열에 포함되지 않기 때문입니다. 그리고 그것은 어디서 오는 것입니까? 배열에 배열이 있는지 확인하는 이유는 무엇입니까? 해당 번호의 _index_가 있는지 확인한 것입니까? – vlaz

+0

그래서 내가하고있는 일은 루핑을 통해 뉴스 기사를 그리는 것입니다. 그러나 우리 고객은 광고에서 원하는 위치를 설정할 수 있습니다. 그래서, count가 참조로 사용되며 if가'if (count가 배열 dfpObj에 있음) 광고를 인쇄합니다. ' – WebDevDanno

답변

0

다음을 사용할 수 있습니다.

$.grep(dfpObj.adverts, function(obj) { return obj.code == "122"; }) 

이렇게하면 해당 개체가 제공되거나 빈 배열이 제공됩니다.

관련 문제