KozhevnikovDmitry / AurigaTestJob

Test job for Auriga

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AurigaTestJob

Test job for Auriga

Description:

  1. Реализовать once – функцию, которая принимает другую функцию, в качестве аргумента, и возвращает новую версию этой функции.

Новая версия должна возвращать то же, что и оригинальная функция, но все последующие вызовы должны возвращать результат самого первого вызова.

Пример:

let inc = a => a + 1;

let incOnce = once(inc);

let res1 = incOnce(42); //res1 is 43

let res2 = incOnce(77); //res2 is 43, NOT 78

Требования:

  1. Не допустимы повторные вызовы функции-аргумента 2. Функция once должна корректно работать с функциями нескольких аргументов 3. Функция once должна корректно работать с методами 4. Функция once должна корректно работать с функциями, которые кидают исключения. В таких случаях, новая функция должна выбрасывать одно и то же исключение при всех последующих вызовах.
  1. Реализовать функцию, которая принимает два аргумента: arr(массив чисел) и countMax(число).

Функция должна возвращать массив длиной countMax (отсортированный по возрастанию) из наибольших чисел массива arr.

Одинаковые значения учитываются только 1 раз.

Если в массиве меньше уникальных числовых значений чем countMax, функцию должна кинуть исключение.

Пример:

let inputArr = [40, 20, 30, 20, 10, 10, 40]; let yourFunction = (arr, countMax) => {

 //Implementation here

}

//get 3 maximum values

let res1 = yourFunction(inputArr, 3); //res1 is [20, 30, 40]; try {

//get 10 maximum values

 let res2 = yourFunction(inputArr, 10); } catch (err) {

//err is like “Incorrect value for argument countMax”

}

About

Test job for Auriga


Languages

Language:JavaScript 100.0%