Koupit x získat zdarma y vzorec

0

Otázka

Snaží se zjistit, jak k formulování koupit x, y získat zdarma. Příklad koupit 10 dostanete 1 zdarma, koupit 20 get 2 zdarma a tak dále. Teď jsem použít jen jako jako tento vzorec. Tento vzorec nebude fungovat, když změna příklad: Koupit 5 get 1 zdarma, koupit 10 dostanete 2 zdarma..

Ts

getFreeItem(){
    
    let countTotal;

    this.commonService.getOrderList$.subscribe((x) => {
      x.filter(item => {
        
        item.forEach((element, i) => {
          
          if (element.freeDealMin !== null) {
            item?.reduce((a, b) => {
              let aVal = a?.count ? a?.count : a;
              let bVal = b?.count ? b?.count : b;
             
              countTotal = aVal + bVal;
              
              return aVal + bVal;
            }, 0);

            let statusFree = element.freeDealMin/ countTotal;
            
            if (statusFree == 1) {
             
                this.freeDealQty = 1;
             
            }else if (statusFree == 0.5) {
              
                this.freeDealQty = 2;

            }else if (statusFree == 0.33333333333) {
              
                this.freeDealQty = 3;

            }
          }
        });
      });
    });
  
  } 
formula javascript math
2021-11-23 00:59:47
1

Nejlepší odpověď

3

Jednoduchý vzorec:

    function getFreeItem(purchaseCount,buyCount=10,freeCount=1) { // default paramters (10 items for 1 free)
      let rate = Math.floor(purchaseCount / buyCount);
      return rate * freeCount;
    }
    
    console.log('Buy 10, Get 1');
    console.log('5', getFreeItem(5));
    console.log('10',getFreeItem(10));
    console.log('15',getFreeItem(15));
    console.log('20',getFreeItem(20));
    console.log();
    
    console.log('Buy 5, Get 1');
    console.log('5', getFreeItem(5,5));
    console.log('10',getFreeItem(10,5));
    console.log('15',getFreeItem(15,5));
    console.log('20',getFreeItem(20,5));
    console.log();
    
    console.log('Buy 10, Get 2');
    console.log('5', getFreeItem(5, 10,2));
    console.log('10',getFreeItem(10,10,2));
    console.log('15',getFreeItem(15,10,2));
    console.log('20',getFreeItem(20,10,2));
    console.log();
    
    console.log('BOGO: Buy 1, Get 1');
    console.log('5', getFreeItem(5, 1));
    console.log('10',getFreeItem(10,1));
    console.log('15',getFreeItem(15,1));
    console.log('20',getFreeItem(20,1));
    console.log();

Změnit parametry, aby se vešly vaše BOGO rychlost

2021-11-23 01:31:46

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................