Javascript 数组中的项仅返回最后一个
我使用这个函数传递数组中的每个元素,以便在if语句中使用它。问题是该函数总是返回数组的最后一个值。请帮助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
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,而不是作为单个变量作为数组