2014-02-24 2 views
-2

이 함수를 사용하여 배열의 모든 요소를 ​​if 문에서 사용합니다. 문제는 함수가 항상 배열의 마지막 값을 반환한다는 것입니다.마지막 배열 만 반환하는 배열의 항목

function getQtyCheck() 
{ 
    var qty; 
    var id; 
    var checkQty = new Array() 
    if(localStorage.getItem("checkout")!=null || localStorage.getItem("checkout")!=""){ 
     checkQty = JSON.parse(localStorage.getItem("checkout")); 
     for(var t =0; checkQty.length >t; t++){ 
     id = checkQty[t]; 
     t++; 
     qty = checkQty[t]; 

     }//end for loop 
     return {ids:id,qtys:qty} 
    }//end checkout 

} 

그런 다음 스크립트의 다른 부분에서 나는이

var result = getQtyCheck(); 
    var id = result.ids; 
    var qty = result.qtys; 
    if(this.id == id){ 
var tqty = this.quantity-qty; 
+0

반품 하시겠습니까? 현재 루프가 마지막으로 반복 할 때,'id'와'qty'는 배열의 마지막 원소의 값을 포함합니다. – War10ck

+0

배열의 모든 항목을 다시 실행하고 싶습니다. –

+0

내 코드를 편집 할 수있는 방법을 모르면] –

답변

1

각 루프 반복처럼 이러한 변수를 사용하여 마, 당신은 현재 반복 항목으로 idqty을 지정합니다. 루프가 끝나면 LAST 반복 항목 세트가있는 객체를 변수로 반환합니다. return은 루프 바로 다음에 있고 루프 내에서 설정된 변수를 사용하므로 항상 마지막 값을 가져옵니다.

1

루프를 추가하고 있기 때문에 매번 마지막으로 돌아 오지만, 루프 외부에서 return을 사용하고 있습니다.이 루프는 마지막으로 실행 한 루프를 얻습니다.

for 루프 내에 여러 번 반환하려고하므로 return을 사용하면 안됩니다. 그래도 할 수있는 일은 push이며 array으로 끝낸 다음 다시 가져옵니다.

+0

변수를 넣을 때 여전히 작동하지 않는다. lopp에 대한 ID를 선언하고 lopp 내부에서 돌아온다. –

+0

여러 번 반환하려고하기 때문에 for 루프 내부에서 'return'하지 말아야한다. . 당신이 할 수있는 일은'array'에'push '한 다음 끝에 가져 오는 것입니다. @MichaelSultana – Albzi

+0

어떻게하는지 이해하지 못하겠습니까? –

2

나는 지금하고있는 일을 따르고 있다고 생각합니다. 배열의 모든 요소를 ​​객체 배열로 반환하려고합니다.

function getQtyCheck() { 
    var qty, 
     id, 
     checkQty = [], 
     returnValues = []; 
    if(localStorage.getItem("checkout")!=null && localStorage.getItem("checkout")!=""){ 
     checkQty = JSON.parse(localStorage.getItem("checkout")); 
     for(var t =0, len = checkQty.length; len > t; t++){ 
      id = checkQty[t]; 
      t++; 
      qty = checkQty[t]; 
      returnValues.push({ id: id, qty: qty }); 
     } 
     return returnValues; 
    } 

} 

반환 할 개체 배열을 작성하십시오. 루프가 끝나면 새로 생성 된 배열을 반환합니다.

+1

제 대답과 같이 이렇게 좋지 않은 것을 쓰고 있었습니까? +1이 :) – Albzi

+0

개별 변수로 배열로 모든 id 및 qty retrun 싶습니다. –

관련 문제