[英]javascript arrays inside an array
问题是。::在下面的代码中……当我调用方法“ addtocart”时……当数组只有一个元素时,它会正确打印..但是,如果数组中有多个元素,它将给出错误,如图所示在图片中:(忽略第一个“ 404”错误)
var counter=0;
function addToCart(productName,productImageURL,productPrice)
{
alert("in addTOCART() method");
var cartArray=new Array();
cartArray[counter]=doTask(productName, productImageURL, productPrice);
//cartArray.concat(doTask(productName, productImageURL, productPrice));
/*cartArray.push(doTask(productName, productImageURL, productPrice));*/
alert("came back to original method");
alert(cartArray.length);
for ( var i = 0; i < cartArray.length; i++) {
var array_element = cartArray[i];
console.log(array_element.toString());
}
alert(cartArray.toString());
counter++;
}
function doTask(productName,productImageURL,productPrice)
{
alert("inside java script");
var cartItem = new Array();
itemName=productName;
itemPrice=productPrice;
alert(itemPrice);
itemImageURL=productImageURL;
quantity=prompt("Please enter the quantity","1");
quantity=parseInt(quantity);
alert(quantity+2);
if (!isNaN( quantity ))
{
alert("yes its a number");
alert(itemImageURL);
alert(itemPrice);
alert(quantity);
alert(itemName);
alert(itemImageURL);
totalAmount=itemPrice*quantity;
alert(totalAmount);
cartItem.push(itemImageURL,itemName,itemPrice,quantity,totalAmount);
//alert(cartItem.toString());
console.log(cartItem.toString());
return cartItem;
}
我认为您可以通过more than 1 element
调用addToCart()
使数组more than 1 element
。
调用addToCart()
后, counter
将+1
。 第二次调用addToCart()
, counter
为1:
// counter = 1;
cartArray[counter]=doTask(productName, productImageURL, productPrice);
// add log to trace cartArray
console.log(cartArray);
cartArray
有2个元素。 索引0 undefined
;
怎么修
从addToCart()
定义cartArray
:
var counter=0;
var cartArray=new Array();
当数量为null时,似乎就像doTask函数一样,您不返回任何内容。所以cartArray包含未定义的元素。请尝试以下操作:
function doTask(productName,productImageURL,productPrice)
{
alert("inside java script");
var cartItem = new Array();
itemName=productName;
itemPrice=productPrice;
alert(itemPrice);
itemImageURL=productImageURL;
quantity=prompt("Please enter the quantity","1");
quantity=parseInt(quantity);
alert(quantity+2);
if (!isNaN( quantity ))
{
alert("yes its a number");
alert(itemImageURL);
alert(itemPrice);
alert(quantity);
alert(itemName);
alert(itemImageURL);
totalAmount=itemPrice*quantity;
alert(totalAmount);
cartItem.push(itemImageURL,itemName,itemPrice,quantity,totalAmount);
//alert(cartItem.toString());
console.log(cartItem.toString());
}
return cartItem
}
错误告诉我们的一件事是array_element未定义..这又意味着cartArray [int]未定义。
因此,问题可能出在您使用int作为变量名..或实际上cartArray元素实际上未定义。
您可以通过在for循环之前和cartArrray [int]的for循环内的cartArray上添加null检查(检查未定义)来解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.