我在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;
};
你能解决这个问题吗?
具体代码在这里:
// 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;
};
答案 0 :(得分:1)
使用lodash
中的函数_.every
https://lodash.com/docs/4.17.2#every
@Edit(根据评论)
_.some(yourArray,{cart_item_supply: yourValue})
这将返回TRUE
,如果在数组中yourValue
更多关于此信息,您会在那里找到:https://lodash.com/docs/4.17.4#some