判断数组内某字段的值,是否与该字段的值相同,若不相同则添加数据进入数组;
逻辑:通过for循环判断是否有相同,并设定一个key,有任何一条数据相同则key被创造,因此添加数据的时候,只需要判定key值是否存在,若key值未被创造,则添加一条数据进入数组;
容易产生的bug:在循环内添加,不设定key,则不论数据是否具有此字段的值,都会被添加进去,且后续判断会覆盖前面判断。
因此,最终的写法为下(待优化,或许有更好的方法);
var arrfk ={
bankCard:vm.fk_card_no,
id:'',
bankCardName:vm.fk_card_bankname
};
var arrhk ={
bankCard:vm.hk_card_no,
cardFromXd:'Y',
id:'000000',
hk_card_no_full:vm.hk_card_no_full,
bankCardName:vm.hk_card_bankname
};
for(var i=0;i<items.length;i++){
if(vm.hk_card_no == items[i].bankCard){
var newCardtrue = true;
}
if(vm.fk_card_no == items[i].bankCard){
var newCardfalse = true;
}
}
if(!newCardfalse){
vm.items = items.concat(arrfk);
}
if(!newCardtrue){
vm.items = items.concat(arrhk);
}
if(!newCardtrue &&!newCardfalse && vm.hk_card_no != vm.fk_card_no){
vm.items = items.concat(arrfk,arrhk);
}
if(newCardtrue && newCardfalse){
vm.items = items;
}
网友评论