Toplam hesaplama
- TypeScript kursu
- Başlangıç
- Ders 73/89
- 5 dk
Sepet toplamını hesaplamayı öğrenirsin.
Sepet toplamı
Bir sepetin toplamı, her CartItem için product.price * quantity değerlerinin toplamıdır. reduce metodu ile tek geçişte hesaplayabilirsin. Başlangıç değeri 0 olmalıdır.
function total(cart: Cart): number {
return cart.items.reduce((sum, i) => sum + i.product.price * i.quantity, 0);
}reduce nasıl çalışır
reduce, diziyi tek bir değere indirger. İlk parametre akümülatör ve öğe alır; ikinci parametre başlangıç değeridir. Burada 0 ile başlayıp her öğenin fiyatını akümülatöre ekleriz.
const sum = cart.items.reduce((acc, i) => acc + i.product.price * i.quantity, 0);
// acc: önceki toplam, i: CartItem, 0: başlangıç değeriUygulama total fonksiyonu yaz
Product, CartItem, Cart arayüzlerini tanımla. total(cart: Cart): number fonksiyonunu yaz. Her öğe için i.product.price * i.quantity hesapla ve hepsini reduce ile topla. Başlangıç değeri 0 olmalı. İki öğeli bir sepetle test et ve sonucu yazdır.
Başlangıç kodu
// Product, CartItem, Cart arayüzlerini tanımla
// total(cart: Cart): number yaz
// her öğenin fiyatını miktarıyla çarp ve topla
// iki öğeli bir sepetle test et, sonucu yazdırÖrnek çözüm
interface Product { id: string; name: string; price: number; }
interface CartItem { product: Product; quantity: number; }
interface Cart { items: CartItem[]; }
function total(cart: Cart): number {
return cart.items.reduce((sum, i) => sum + i.product.price * i.quantity, 0);
}
const cart: Cart = {
items: [
{ product: { id: "a", name: "Elma", price: 5 }, quantity: 2 },
{ product: { id: "b", name: "Armut", price: 3 }, quantity: 4 }
]
};
console.log(total(cart));Beklenen çıktı
22
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir CartItem'ın toplam fiyatı nasıl hesaplanır?
- product.price * quantity Doğru cevap
- product.price + quantity
- product.price
- quantity
Açıklama: Bir öğenin toplam fiyatı, ürün fiyatının miktar ile çarpımıdır: product.price * quantity. Toplama yanlış olur.
2 Çarpma işlecini tamamla
const itemTotal = i.product.price ____ i.quantity;
const itemTotal = i.product.price * i.quantity;
Açıklama: Öğe toplamı, fiyat ile miktarın çarpımıdır: i.product.price * i.quantity. +, / ve - yanlış işlem yapar.
3 Toplam hesaplama parçaları
| Kavram | Anlamı |
|---|---|
price * quantity |
Öğe toplam fiyatı |
reduce((sum, i) => ..., 0) |
Tüm öğeleri topla |
0 |
Başlangıç değeri |
sum + itemTotal |
Akümülatör güncellemesi |