[英]substract an element of an array after multiply two elements on the same array
我從api獲取信息,我將響應中的兩個元素相乘,然后求和。 到目前為止,這是我的代碼:
function forTest(){
$http.get('/api/DaApi?di=' + '2018-11-01' + '&df=' + '2018-11-01')
.then(function(data){
$scope.result = data.data.Response;
$scope.multiplyResult = $scope.result.map(x => x.Cost * x.Quantity).reduce((a, b) => a + b, 0);
}
一切正常,但是現在我必須在總和之前進行另一次操作。 假設現在我有3個元素: Cost, Quantity and Discount
:
[{Quantity: 2, Cost: 1000, Discount: -100},
{Quantity: 3, Cost: 2000, Discount: -500},
{Quantity: 2, Costo: 3130, Discount: -120}]
現在我需要乘以每成本數量,然后減去Discount(這已經是一個負數)。 在相乘和相減之后,我必須對所有結果求和。 我如何進行減法? 在map
內部我必須進行訂閱嗎? 就像是:
$scope.multiplyResult = $scope.result.map(x => (x.Cost * x.Quantity) + x.Discount)).reduce((a, b) => a + b, 0);
還是必須在減少量之內?
有人可以幫幫我,我有點不了解地圖的使用和精簡。 我正在使用javascript和AngularJs。
提前感謝。
我認為這是一個錯字。
let arr = [{Quantity: 2, Cost: 1000, Discount: -100}, {Quantity: 3, Cost: 2000, Discount: -500}, {Quantity: 2, Cost: 3130, Discount: -120}]; let sum = arr.map(x => (x.Cost * x.Quantity) + x.Discount).reduce((a,b)=>a+b,0) console.log(sum);
您可以通過對所需屬性進行解構分配 ,然后加總價格來在一個循環中計算和求和。
$scope.multiplyResult = $scope.result
.reduce((sum, { Cost, Quantity, Discount }) => sum + Cost * Quantity + Discount, 0);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.