Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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 array.push不是一个函数_Javascript_Angularjs_Arrays - Fatal编程技术网

Javascript array.push不是一个函数

Javascript array.push不是一个函数,javascript,angularjs,arrays,Javascript,Angularjs,Arrays,我想使用以下代码向Javascript中的数组添加一个新值: $rootScope.shoppingCart = new Array(); $rootScope.addToShoppingCart = function(item){ var quantity = 1; var product = []; for(var i=0; i< $rootScope.shoppingCart.length; i++){ if($rootScope.shop

我想使用以下代码向Javascript中的数组添加一个新值:

$rootScope.shoppingCart = new Array();

$rootScope.addToShoppingCart = function(item){
    var quantity = 1;
    var product = [];

    for(var i=0; i< $rootScope.shoppingCart.length; i++){
        if($rootScope.shoppingCart[i].productNumber.indexOf(item.product.productNumber) > -1){
            quantity = $rootScope.shoppingCart[i].quantity+1;
            $rootScope.shoppingCart[i].quantity = quantity;
            break;
        }
    }
    if(quantity == 1){
        product = {
            name: item.product.brandName + " "+ item.product.productNumber,
            price: item.price,
            image: item.product.image1,
            quantity: quantity,
            productNumber: item.product.productNumber,
            productId: item.product._id
        };
        $rootScope.shoppingCart.push(product);
    }
}
$rootScope.shoppingCart=new Array();
$rootScope.addToShoppingCart=函数(项目){
变量数量=1;
var乘积=[];
对于(变量i=0;i<$rootScope.shoppingCart.length;i++){
if($rootScope.shoppingCart[i].productNumber.indexOf(item.product.productNumber)>-1){
数量=$rootScope.shoppingCart[i]。数量+1;
$rootScope.shoppingCart[i]。数量=数量;
打破
}
}
如果(数量=1){
产品={
名称:item.product.brandName+“”+item.product.productNumber,
价格:item.price,
图像:item.product.image1,
数量:数量,,
productNumber:item.product.productNumber,
productId:item.product.\u id
};
$rootScope.shoppingCart.push(产品);
}
}
但是,当我想通过“
addToShoppingCart
”函数将新产品添加到阵列中时,我得到一个
$rootScope.shoppingCart.push不是一个函数
错误。 我的眼睛我没有任何错误,因为我想把一个数组推到一个数组中,但它一直伴随着这个错误


有人知道我做错了什么吗?

您只需将以下代码添加到“loadcart”函数中即可

Array.prototype.push.apply($rootscope.shoppingCart, response.data)

代码似乎很好,也许您在代码中的其他地方重写了shoppingCart?与此代码中的错误无关。它只是意味着
$rootScope.shoppingCart
不是数组的实例,或者可能在代码的其他部分重新分配。您可能正在将
$rootScope.shoppingCart
作为对象或其他数据类型,然后在此函数调用try if(!angular.isArray($rootScope.shoppingCart))console.log($rootScope.shoppingCart);befoe$rootScope.shoppingCart.push(产品)@不,你不应该那样做。在覆盖属性时,请确保
response.data
是一个数组