3
我想一個新值在Javascript添加到陣列用下面的代碼:的Array.push不是函數
$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);
}
}
但是,當我想通過'addToShoppingCart
了一種新產品添加到陣列'功能我得到一個$rootScope.shoppingCart.push is not a function
錯誤。 我的眼睛我沒有任何問題,因爲我想將一個數組插入一個數組,但它會一直出現這個錯誤。
有沒有人看到我在這裏做錯了?
代碼看起來很好,也許你重寫購物車中某處的代碼? –
沒有什麼與你在這段代碼中出現的錯誤有關。這只是意味着'$ rootScope.shoppingCart'不是數組的實例,或者可能會在代碼的其他部分重新分配。 – Hydro
如果(!angular.isArray($ rootScope.shoppingCart)) console.log($ rootScope.shoppingCart);您可能會在此函數調用之前將'$ rootScope.shoppingCart'作爲對象或其他數據類型 –