???????判斷數(shù)組內(nèi)某字段的值,是否與該字段的值相同赫悄,若不相同則添加數(shù)據(jù)進(jìn)入數(shù)組披坏;
???????邏輯:通過(guò)for循環(huán)判斷是否有相同态坦,并設(shè)定一個(gè)key,有任何一條數(shù)據(jù)相同則key被創(chuàng)造棒拂,因此添加數(shù)據(jù)的時(shí)候伞梯,只需要判定key值是否存在,若key值未被創(chuàng)造帚屉,則添加一條數(shù)據(jù)進(jìn)入數(shù)組谜诫;
???????容易產(chǎn)生的bug:在循環(huán)內(nèi)添加,不設(shè)定key攻旦,則不論數(shù)據(jù)是否具有此字段的值喻旷,都會(huì)被添加進(jìn)去,且后續(xù)判斷會(huì)覆蓋前面判斷牢屋。
???????因此且预,最終的寫(xiě)法為下(待優(yōu)化牺陶,或許有更好的方法);
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;
}