私は1つのAPIに存在するクライアントからクーポンを表示しようとしています。使用されたクーポンを数えている別のAPIの中に1つ(または 'n')のクーポンが存在する場合は、そのクーポンまたはそのクーポンをリストから削除する必要があります。使用されたクーポンのAPIは次のように応答します。スプライスとforまたはforEachを使用
{
"State": 200,
"Response": [
{
"IdInvoiceRequest": 104,
"Coupons": [
{
"IdCoupon": 77236,
"Code": "11#E5ZQHZ-GNH"
},
{
"IdCoupon": 77237,
"Code": "12#WM96FY-NGE"
},
{
"IdCoupon": 77239,
"Code": "14#BH92BA-E6N"
},
{
"IdCoupon": 77240,
"Code": "15#FWXNR4-XHP"
},
{
"IdCoupon": 77241,
"Code": "16#7FK5F8-TKM"
}
]
},
{
"IdInvoiceRequest": 143,
"Coupons": [
{
"IdCoupon": 77238,
"Code": "13#BN5MZB-VJ9"
}
]
}
],
"Message": "Informacion correcta",
"TotalRows": 0,
"IsCorrect": true}
使用したクーポンを削除しようとすると問題が発生します。私のコードは、これまで:すべてのクーポンが使用クーポンリストの内側にある場合でも、
function validExist() {
vm.getSelected =
couponExist.get({
idOrder: vm.idOrder
}).$promise.then(function(data) {
for (var i = 0; i < data.Response.length; i++) {
data.Response[i].Select = vm.exist;
console.log(vm.exist);
}
vm.otherF = vm.coupons
for (var i = 0; i < data.Response.length; i++) {
data.Response[i].Select = vm.isHere;
console.log(vm.isHere);
}
if (vm.exist == vm.isHere) {
vm.coupons.splice(vm.coupons.IdCoupon, i++);
};
});
}
ときスプライス行為は、非常に最初のクーポンを排除し、他の人も同じ。すべてのクーポンを削除するにはどうすればよいですか?私はこれを行う方法は 'forEach'を使用していることを聞いたことがあるが、私は光を見ない(一息)。
私を助けることができますか?
Thanx事前に。
これは機能します!しかし、APIの例を見ると、2つの "IdInvoiceRequest"があります。今、コードのこの部分が最初のIdInvoiceRequestを反復処理します。どのようにすべてのIdInvoiceRequestを反復処理できますか? –
答えを更新しました。基本的には、2つのクーポンループの外に別のループが必要です。これは、応答の請求書を繰り返し処理します。 –
私はあなたにビールを借りています!それは完璧に動作します! –