Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组中的javascript数组_Javascript_Jquery_Html_Web - Fatal编程技术网

数组中的javascript数组

数组中的javascript数组,javascript,jquery,html,web,Javascript,Jquery,Html,Web,问题是:在以下代码中。。。当我调用方法“addtocart”。。。 当数组只有一个元素时,它将正确打印。。。。 但是,如果它有超过1个元素,则会出现如图所示的givs错误: (忽略第一个“404”错误) var计数器=0; 函数addToCart(productName、productImageURL、productPrice) { 警报(“在addTOCART()方法中”); var cartArray=新数组(); cartArray[counter]=doTask(产品名称、产品图像UR

问题是:在以下代码中。。。当我调用方法“addtocart”。。。 当数组只有一个元素时,它将正确打印。。。。 但是,如果它有超过1个元素,则会出现如图所示的givs错误: (忽略第一个“404”错误)

var计数器=0;
函数addToCart(productName、productImageURL、productPrice)
{
警报(“在addTOCART()方法中”);
var cartArray=新数组();
cartArray[counter]=doTask(产品名称、产品图像URL、产品价格);
//concat(doTask(productName、productImageURL、productPrice));
/*push(doTask(productName、productImageURL、productPrice))*/
警报(“返回原始方法”);
警报(cartArray.length);
对于(var i=0;i
我认为通过多次调用
addToCart()
可以使数组
包含多个元素

调用
addToCart()
后,
计数器将
+1
。第二次调用
addToCart()
时,
计数器为1:

 // counter = 1;
 cartArray[counter]=doTask(productName, productImageURL, productPrice);
 // add log to trace cartArray
 console.log(cartArray);
cartArray
有2个元素。索引0是
未定义的

如何修复

addToCart()中定义
cartArray


看起来像是当quantity为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_元素未定义..这意味着cartArray[int]未定义

因此,问题可能是使用int作为变量名..或者实际上cartArray元素未定义


您可以通过在cartArray[int]上的for循环存在之前和for循环内,在cartArray[int]上添加空检查(检查未定义)来解决您的问题。除此之外,缩进伤害了我的眼睛。:(据我所知,数组确实有一个
.toString()
方法。避免将迭代变量命名为“int”。这是一个保留的关键字。请改用“i”。让我知道:)@roland~如果你问我的话,这是一个有效的答案。也许不是导致他出现问题的原因,但这是一个有效的加法。@tryingToGetProgrammingStraight从未对Javascript中的数组对..in
执行
var counter=0;
var cartArray=new Array();
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 
}