我使用此函数传递数组中的每个元素以在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 :(得分: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)
每次循环迭代,您将id
和qty
分配给当前迭代的项目。循环结束后,返回一个对象,并将最后一个迭代项设置为变量。由于您的return
紧跟在循环之后并使用循环中设置的变量,因此您将始终获得最后的值。
答案 2 :(得分:1)
它每次都返回最后一个,因为你正在循环它,它正在添加它,但是你在循环之外使用return
,这只会得到它运行的最后一个。
你不应该在for循环中return
,因为它会尝试多次返回。你可以做的是push
它到array
,然后在最后得到它。