2013-08-27 6 views
-3

나는 120 개의 값을 가진 자바 스크립트에서 for 루프를 가지고 있는데, 원하는 것은 무엇인가? 항상 루프가 유지하는 첫 번째 값을 건너 뛰고 루프가 생성 할 다음 값으로 건너 뛰기를 원합니다. , 나는 여러 조건을 가지고 있기 때문에, i의 값은 항상 0,1,2,3,4,5 등이 아닐 것입니다. 아래 23,28,30,32 등이 될 수 있습니다. 내 소스 코드는 다음과 같습니다. 루프의 마지막 줄을 살펴보십시오.forloop의 첫 번째 값 건너 뛰기

for (i = 0; i < document.links.length; i++) { 
    L = document.links[i]; 
    ext = (L.href.indexOf('?') == -1) ? L.href.slice(-4).toLowerCase() : L.href.substring(0, L.href.indexOf('?')).slice(-4).toLowerCase(); 
    if (ext != '.jpg' && ext != '.png' && ext != '.gif' && ext != 'jpeg') continue; 
    if (a == 'sh' && L.className.toLowerCase().indexOf('shutter') == -1) continue; 
    if (a == 'lb' && L.rel.toLowerCase().indexOf('lightbox') == -1) continue; 
    if (L.className.toLowerCase().indexOf('shutterset') != -1) 
     setid = L.className.replace(/\s/g, '_'); 
    else if (L.rel.toLowerCase().indexOf('lightbox[') != -1) 
     setid = L.rel.replace(/\s/g, '_'); 
    else setid = 0, inset = -1; 
    if (setid) { 
     if (!shutterSets[setid]) shutterSets[setid] = []; 
     inset = shutterSets[setid].push(i); 
    } 
    imgdetails = L.innerHTML; 
    console.log(imgdetails); 
    img1 = jQuery.trim(imgdetails); 
    alttext = jQuery(img1).attr('alt'); 
    shfile = L.href.slice(L.href.lastIndexOf('/') + 1); 
    T = (L.title && L.title != shfile) ? L.title : ''; 
    //alert(inset); 
    shutterLinks[i] = { 
     link: L.href, 
     num: inset, 
     set: setid, 
     title: T, 
     imagealt: alttext 
    } 
    //on below line, where i is being called i always want to skip the first value and always pass from second value. 
    L.onclick = new Function('shutterReloaded.make("' + i + '");return false;'); 
} 

아무도 도와주세요. 1 대신 0의 인덱스

+3

* 정확히 수행 할 작업에 다소 모호합니다. –

+0

'continue' 키워드를 사용하여 루프의 한 반복을 건너 뛸 수 있습니다. 건너 뛸지 여부를 감지 할 수있는 로직이 있다면'break;'또는'return;'처럼'continue;'를 사용할 수 있습니다. –

+1

'for (var i = 1; etc')? – bfavaretto

답변

0

시작 ("; 내가 < document.links.length (전 = 1가 난 ++)") :

for (i = 1; i < document.links.length; i++) { 
    L = document.links[i]; 
    ext = (L.href.indexOf('?') == -1) ? L.href.slice(-4).toLowerCase() : L.href.substring(0, L.href.indexOf('?')).slice(-4).toLowerCase(); 
    if (ext != '.jpg' && ext != '.png' && ext != '.gif' && ext != 'jpeg') continue; 
    if (a == 'sh' && L.className.toLowerCase().indexOf('shutter') == -1) continue; 
    if (a == 'lb' && L.rel.toLowerCase().indexOf('lightbox') == -1) continue; 
    if (L.className.toLowerCase().indexOf('shutterset') != -1) 
     setid = L.className.replace(/\s/g, '_'); 
    else if (L.rel.toLowerCase().indexOf('lightbox[') != -1) 
     setid = L.rel.replace(/\s/g, '_'); 
    else setid = 0, inset = -1; 
    if (setid) { 
     if (!shutterSets[setid]) shutterSets[setid] = []; 
     inset = shutterSets[setid].push(i); 
    } 
    imgdetails = L.innerHTML; 
    console.log(imgdetails); 
    img1 = jQuery.trim(imgdetails); 
    alttext = jQuery(img1).attr('alt'); 
    shfile = L.href.slice(L.href.lastIndexOf('/') + 1); 
    T = (L.title && L.title != shfile) ? L.title : ''; 
    //alert(inset); 
    shutterLinks[i] = { 
     link: L.href, 
     num: inset, 
     set: setid, 
     title: T, 
     imagealt: alttext 
    } 
    //on below line, where i is being called i always want to skip the first value and always pass from second value. 
    L.onclick = new Function('shutterReloaded.make("' + i + '");return false;'); 
} 

, 비록 당신이해야하는 이유 이것을 여전히 불분명하다.

관련 문제