Code Monkey home page Code Monkey logo

front-end-course-practice-1's Introduction

Практическая работа 1: простые типы данных, приведение типов, объекты, массивы

Начало работы

Установите зависимости проекта:

npm install

После этого вам будут доступны следующие команды:

  • npm run lint - проверка качества вашего кода утилитой ESLint
  • npm run test [test-file] - запустить unit-тесты из указанного файла в консоли, например: npm run test test/spec/task-1.spec.js
  • npm run test:all - запуск всех unit-тестов в консоли
  • npm run test -- --watch [test-file], npm run test:all -- --watch - запуск одного или всех unit-тестов в консоли, с автоматическим перезапуском при изменении исходного кода. Например: npm run test -- --watch test/spec/task-1.spec.js
  • npm run test:browser - запуск всех unit-тестов в браузере

Помните, каждый раз когда ваши тесты выполняются корректно, один котик становится радостным!

Задания

Задача 1

Дано три числа a, b, c. Напишите функцию isTriangle, которая возвращает true, если эти числа могут быть сторонами треугольника.

Задача 2

Даны два числа n и a. Напишите функцию getNthItem, которая возвращает n-й член последовательности

S[0] = 0
S[i] = a - 2*S[i-1]

Задача 3

Дано натуральное число x. Напишите функцию sumDigits, которая будет подсчитывать сумму всех цифр этого числа.

Задача 4

Дано число секунд прошедших с полуночи. Функция formatTime должна сформировать строку с human-readable временем суток в 12-часовом формате (https://en.wikipedia.org/wiki/12-hour_clock). Количество часов, минут и секунд должно записываться двузначным числом. Например:

formatTime(3600) --> "01:00:00 AM"
formatTime(37784) --> "10:29:44 AM"
formatTime(59900) --> "04:38:20 PM"

Задача 5

Дана строка с текстом и число - максимально разрешенная длина текста. Если длина строки больше разрешенной, то нужно заменить конец строки на троеточие таким образом, чтобы ее длина была меньше или равна максимально разрешенной (с учетом троеточия). Если длина строки меньше или равна максимально разрешенной, то строка должна остаться неизменной.

Кроме того, ваша функция должна выбрасывать исключение типа RangeError, если в нее передали отрицательное или нулевое значение maxLength.

Примечание: используйте специальный символ Unicode для троеточия: "ellipsis".

Задача 6

Дан массив чисел. Найти максимальное, минимальное и среднеарифметическое значение из этого массива. Если в массиве нет значений для обработки, все результаты должны быть равны null

Например:

getStats([3, 37, 45, 80, 1, 50, 36, 75, 77, 26]) --> {
    max: 80,
    min: 1,
    avg: 42.4
}
getStats([86, 30, 70, 19, 68, 75, 10, 49, 26, 37]) --> {
    max: 86,
    min: 10,
    avg: 47
}

Задача 7

Дан массив. Нужно удалить из него все дубликаты значений, сохранив исходный порядок элементов.

Примеры:

filterUnique([10, 22, 14, 10, 28, 10, 14, 62, 32]) --> [10, 22, 14, 28, 62, 32];
filterUnique([3, 14, 15, 92, 6, 5, 35]) --> [3, 14, 15, 92, 6, 5, 35];
filterUnique([8, 2, 2, 3, 8, 2, 2, 3]) --> [8, 2, 3];

(*) Попробуйте решить задачу с помощью встроенного типа Set (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) и spread оператора. Результат вас удивит.

Задача 8

Найти символ с максимальным числом вхождений в строке. Если таких символов несколько, то можно вернуть любой из них. Для подсчета числа вхождений каждого символа используйте тип данных Map.

Пример:

getTopLetter("CAATGCCATA") --> "A";

Задача 9

Дан массив объектов. Создать новый объект, в котором будут объединяться все поля исходных объектов. Значения полей должны объединяться в массивы с перечислением значений исходных данных.

Например, пусть есть три объекта:

let package0 = {"name": "boots", "weight": 10.3, "price": 122, "fragile": false, "owner": "Michael Caine"},
    package1 = {"price": 31.5, "fragile": true, "owner": "Tom Cruise", "address": "Washington DC, Ave. 144/5"},
    package2 = {"price": 103.25, "charged": true, "fromCountry": "India", "volume": "10 L"},
    result = mergeObjects([package0, package1, package2]);

После объединения этих объектов получится новый объект:

{
    name: ["boots"],
    weight: [10.3],
    price: [122, 31.5, 103.25],
    fragile: [false, true],
    owner: ["Michael Caine", "Tom Cruise"],
    address: ["Washington DC, Ave. 144/5"],
    charged: [true],
    fromCountry: ["India"],
    volume: ["10 L"]
};

Задача 10 (*)

Написать алгоритм преобразования числа в формат римских цифр.

front-end-course-practice-1's People

Contributors

sg-mamedova avatar pieceofmeat avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.