• Как реализовать функцию?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Надеюсь, вас возьмут на работу : )

    function loadCurrencyJSON() {
    	return '{"AUD":44.95,"GBP":73.42,"BRL":18.8,"USD":58.85,"EUR":62.68,"ZZZ":79.91}';
    }
    function convertCurrency (amount, from, to) {
    	let rates = JSON.parse(loadCurrencyJSON());
    	return ( amount / rates[to] * rates[from]).toFixed(2); // вернуть число, округленное до сотых
    }
    
    let price1 = convertCurrency(7000, 'ZZZ', 'USD');
    console.log(`Сумма ${price1} USD`);
    // Сумма 9505.01 USD
    
    let price2 = convertCurrency(790, 'EUR', 'ZZZ');
    console.log(`Сумма ${price2} Q`);
    // Сумма 619.66 Q
    Ответ написан
    3 комментария
  • Как реализовать функцию?

    devellopah
    @devellopah
    я бы сделал немного по-другому. По идее, ты должен указать инфу о кол-ве, оставшегося товара для каждой позиции(quantity). Если предположить, что ты так и сделаешь, то можно переписать так

    const items = [
    	{name:'Отвертка',price:'150', quantity: 100},
    	{name:'Ключ',price:'100', quantity: 200},
    	{name:'Зубило',price:'180', quantity: 500},
    	{name:'Напильник',price:'200', quantity: 1000},
    	{name:'Молоток',price:'500', quantity: 250}
    ];
    
    function getDiscount(x) {
    	if(x < 10) return 5;
    	if(x > 10 && x < 50) return 7;
    	if(x > 50 && x < 100) return 10;
    	if(x > 100) return 15;
    }
    
    function getCustomerBenefit(item) {
    	const benefit = item.quantity * 0.01 * item.price * getDiscount(item.quantity);
    	
    	console.log('money you can save due to discount', benefit);
    	
    	return benefit;
    }
    
    function calculateTotalPayment(item) {
    	const beforeDiscount = item.quantity * item.price;
    	const totalPayment = beforeDiscount - getCustomerBenefit(item);
    	
    	console.log('beforeDiscount', beforeDiscount);
    	console.log('total payment(discount included)', totalPayment);
    	
    	return totalPayment;
    }
    
    calculateTotalPayment(items[4]);


    p.s. https://repl.it/HCNy
    Ответ написан
    3 комментария
  • Как вызвать свойство объекта из массива?

    @lemme
    Frontend
    console.log('А сегодня ' + items[3].name + 'у  ' + 'исполнилось ' + items[3].age ' лет')


    Или более приятный вариант
    const userInfo = (user) => `А сегодня ${user.name}у исполнилось ${user.age} лет`
    console.log(userInfo(user[3]))
    Ответ написан
    3 комментария
  • Как настроить функцию для передачи различных значений?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Внутри возвращаемой функции запоминайте значение:
    function nds( cost) {
      return function() {
        var _cost = cost;
        var result = _cost * 1.13;
        console.log( result.toFixed(2));
      }
    }


    Так возвращаемый экземпляр функции будет содержать в себе переданное значение.

    var a = nds(53);
    var b = nds(12);
    a(); // 59.89
    b(); // 13.56


    Upd. для общего счётчика придётся завести переменную, видимую из всех функций:
    var total = 0;
    
    function nds( cost) {
      return function() {
        var _cost = cost; // запомнили внутри цену
        var result = _cost * 1.13; // добавили НДС
        total += result; // добавили к общей сумме
        console.log( "result:", result.toFixed(2), "total:", total.toFixed(2));
      }
    }
    
    var a = nds(53);
    var b = nds(12);
    
    a(); // result: 59.89 total: 59.89
    b(); // result: 13.56 total: 73.45
    a(); // result: 59.89 total: 133.34
    a(); // result: 59.89 total: 193.23
    Ответ написан
    2 комментария