Javascript array.push不是一个函数
我想使用以下代码向Javascript中的数组添加一个新值: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
$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
是一个数组