Я хочу, чтобы добавить новое значение в массив в 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
. Я в моих глазах ничего не имею, потому что хочу массировать массив в массив, но он продолжает приходить с этой ошибкой.
Есть ли кто-нибудь, кто видит то, что я делаю неправильно здесь?
код кажется нормально, возможно переопределить ShoppingCart где-то в коде? –
Ничего не связано с ошибкой, полученной в этом коде. Это просто означает, что '$ rootScope.shoppingCart' не является экземпляром массива или может быть переназначен в другой части вашего кода. – Hydro
вы можете сделать '$ rootScope.shoppingCart' как объект или какой-либо другой тип данных перед вызовом этой функции –