У меня есть вопрос в Ionic/AngularJs:Как искать в массиве объектов определенное поле, используя Ionic/AngularJs?
У меня есть два запроса на предмет, который не работает должным образом. Первый if (cartObj.cart.find (id)! = - 1)
{---> Все в порядке.
Второй вариант: if (cartObj.cart.findvovo (supply_id)! = - 1) { были, если значение первого if равно полю, которое я хочу получить, принимает.
Я хочу получать данные только из "cart_item_supply": supply_id. Как я могу это сделать?
На экране я привязалась показать свою консоль с объектами массива для вас лучше понять.
Это мой код:
var cartObj = {};
cartObj.cart=[];
cartObj.total_amount=0;
cartObj.total_qty=0;
// VERIFICA DE JÁ EXISTE ITENS NO CARRINHO
cartObj.cart.add=function(id,image,name,price,qty,supply_id,deliver){
if(cartObj.cart.find(id)!=-1 ){
var alertPopup = $ionicPopup.alert({
title: 'This product has already been added',
template: 'Add more quantity to cart'
});
}if(cartObj.cart.findvovo(supply_id) !=-1){
var alertPopup = $ionicPopup.alert({
title: 'This offer is from Another Grandmother',
template: 'You can only buy offers from a single Grandma. Choose other offers from this same Grandma.'
});
}
// IF DON´T EXIST, ADD
else{
cartObj.cart.push({ "cart_item_id": id , "cart_item_image": image , "cart_item_name": name , "cart_item_price": price , "cart_item_qty": qty, "cart_item_supply": supply_id, "cart_item_deliver": deliver });
cartObj.total_qty+=1;
cartObj.total_amount+=parseInt(price);
console.log(cartObj);
}
};
// SEACH PRODUCTS BY ID
cartObj.cart.find=function(id){
console.log("chamou find");
var result=-1;
for(var i = 0, len = cartObj.cart.length; i < len; i++) {
if(cartObj.cart[i].cart_item_id === id) {
result = i;
console.log(result);
break;
}
}
return result;
};
// SEARCH CART_ITEM_SUPPLY === SUPPLY_ID --- HERE DONT FOUND
cartObj.cart.findvovo=function(supply_id){
var result=-1;
for(var i = 0, len = cartObj.cart.length; i < len; i++) {
if(cartObj.cart[i].cart_item_supply === supply_id) {
result = i;
console.log(result);
break;
}
};
return result;
};
Может вы решить этот вопрос?
especific код здесь:
// SEARCH CART_ITEM_SUPPLY === SUPPLY_ID --- HERE DONT FOUND
cartObj.cart.findvovo=function(supply_id){
var result=-1;
for(var i = 0, len = cartObj.cart.length; i < len; i++) {
if(cartObj.cart[i].cart_item_supply === supply_id) {
result = i;
console.log(result);
break;
}
};
return result;
};
Hi @DiPix Я использую теперь lodash. Это работает. Но я не могу получить первый идентификатор и получить только этот первый идентификатор из других регистров. – Ramos
Можете ли вы привести мне пример? Коллекция, ваш запрос lodash и ожидаемый результат? – DiPix
В начале создания объектов нет ничего. Пользователь выбирает продукт и создает первые массивы объектов. Итак, он выбирает другой продукт. Если этот новый продукт имеет то же значение поля «cart_item_supply» массива, то запустите и создайте новый объект, иначе покажите сообщение и не создайте новый объект. – Ramos