Javascript 数组中的项仅返回最后一个

Javascript 数组中的项仅返回最后一个,javascript,arrays,json,Javascript,Arrays,Json,我使用这个函数传递数组中的每个元素,以便在if语句中使用它。问题是该函数总是返回数组的最后一个值。请帮助 function getQtyCheck() { var qty; var id; var checkQty = new Array() if(localStorage.getItem("checkout")!=null || localStorage.getItem("checkout")!=""){ checkQty = JSON.pars

我使用这个函数传递数组中的每个元素,以便在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;

每次循环迭代,您将
id
qty
分配给当前迭代的项。循环结束后,返回一个对象,并将最后一个迭代项设置为变量。由于您的
返回
紧跟在循环之后,并且使用在循环中设置的变量,因此您总是会得到最后一个值。

它每次都会返回最后一个值,因为您正在循环它,这是在将其相加,但随后您在循环外使用
返回
,这将得到它运行的最后一个值


您不应该在for循环中
返回
,因为它将尝试多次返回。你能做的就是把它推到一个数组中,然后在最后得到它。

我想我正在跟随你现在要做的事情。要将数组中的每个元素作为对象数组返回,对吗

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;
     }

}

在循环中,构建要返回的对象的数组。循环结束后,返回新创建的数组。

要返回哪项?当前,当您的循环最后一次迭代时,
id
qty
将包含数组中最后一个元素的值。我想重新运行数组中的每个项目不了解如何执行此操作。请编辑我的代码]var result=getQtyCheck();var id=result.id;如果我将变量declare id for lopp和return放在LOPPY内部,则无法检索id和qtyStill。您不应该
return
在for循环内部,因为它将尝试多次返回。不过,您可以做的是
将它推送到
数组
,然后在末尾获取它@MichaelSultana不明白怎么做,你能给我看看吗?请看一下war10ck的回答是这样写的,虽然不如我的回答好+1对于此:)我希望重新运行每个id和qty,而不是作为单个变量作为数组