Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Zlatina123 avatar Zlatina123 2 Точки

Currency Format задача от Advanced functions Lab

Здравейте, колеги! Дали някой от вас би могъл да сподели решение на задача Currency Format задача от Advanced functions Lab?

Не мога да разбера добре условието и как точно се иска да форматираме задаваните параметри.

Благодаря предварително!

 

Условие:  

  1. Currency Format

Write a higher-order function createFormatter that fixes some of the parameters of another function. Your program will receive four parameters: three values and a function that takes 4 parameters and returns a formatted string (a monetary value with currency symbol). 

Your task is to return a partially applied function, based on the input function, that has its first three parameters fixed and only takes one parameter.

You will receive the following function: 

currencyFormatter

function currencyFormatter(separator, symbol, symbolFirst, value) {

    let result = Math.trunc(value) + separator;

    result += value.toFixed(2).substr(-2,2);

    if (symbolFirst) return symbol + ' ' + result;

    else return result + ' ' + symbol;

}

Receive and set the following parameters to fixed values:

separator

symbol

symbolFirst

The final parameter value is the one that the returned function must receive.

Input

You will receive four parameters:

  • separator (string)
  • symbol (string)
  • symbolFirst (Boolean)
  • formatter (function)

Output

You need to return a function that takes one parameter - value

Examples

Sample Input

let dollarFormatter = createFormatter(',', '$', true, currencyFormatter);

console.log(dollarFormatter(5345));   // $ 5345,00

console.log(dollarFormatter(3.1429)); // $ 3,14

console.log(dollarFormatter(2.709));  // $ 2,71

 

 

Тагове:
0
JavaScript Advanced
willystyle avatar willystyle 2472 Точки
Best Answer
function createFormatter(separator, symbol, symbolFirst, currencyFormatter) {
    let formatter = function(value) {
        return currencyFormatter(separator, symbol, symbolFirst, value);
    }
    return formatter;
}

 

0
willystyle avatar willystyle 2472 Точки

Решението може да се напише и на един ред, но от горното ще ти стане по-ясно какво се случва.

(sep, sym, sym1, func) => val => func(sep, sym, sym1, val);

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.