// Temperature // Оформите Temperature как функцию, в которую параметром передается температура в одной системе, а возвращается // в другой. Никаких prompt и console.log в коде быть не должно, если вы хотите в дальнейшем пользоваться этой // функцией где угодно в коде удобно. Нужен ли блок кода в функции для решения этой задачи? temperature: { const temperatureFromCtoF = c => c * 9 / 5 + 32; console.log(temperatureFromCtoF(36)); console.log(temperatureFromCtoF(14)); } // RGB // Оформите Number: RGB как функцию, в которую параметрами передаются три числа (r,g,b) => . Функция должна // возвращать строку в нотации #RRGGBB. Используя условия или тернарный оператор добейтесь что бы в результате // всегда было 7 символов, даже когда значение цвета меньше 15ти. Нужен ли блок кода этой функции? rgb: { const rgb = (r, g, b) => { let color = '#' + (r > 15 ? r.toString(16) : '0' + r.toString(16)) + (g > 15 ? g.toString(16) : '0' + g.toString(16)) + (b > 15 ? b.toString(16) : '0' + b.toString(16)); return color; } console.log(rgb(5, 5, 5)); console.log(rgb(13, 35, 456)); } // Flats // Оформите Number: flats как функцию. Продумайте достаточное количество параметров для решения задачи. Функция // должна возвращать объект вида {entrance, floor}, где entrance - номер падика, floor - номер этажа на котором // находится квартира. flats: { const apartmentSearch = (numberOfFloors, numberOfApartmentsOnFloor, apartmentNumber) => { let apartmentLocation = { entrance: null, floor: null, } apartmentLocation.entrance = Math.ceil(apartmentNumber / (numberOfFloors * numberOfApartmentsOnFloor)); apartmentLocation.floor = Math.ceil(apartmentNumber % (numberOfFloors * numberOfApartmentsOnFloor) / numberOfApartmentsOnFloor) || numberOfFloors; return apartmentLocation; } console.log(apartmentSearch(9, 4, 81)); } // Credentials // Оформите задание String: credentials как функцию без параметров. Используйте функцию capitalize из домашнего // задания по массивам. Функция должна содержать вызовы prompt и возвращать объект вида {name, surname, fatherName, fullName} credentials: { const capitalize = (str) => { let result = str.trim().slice(0, 1).toUpperCase() + str.trim().slice(1).toLowerCase(); return result; } const credentials = () => { let person = {} person.name = capitalize(prompt('What is your name?')); person.surname = capitalize(prompt('What is your surname?')); person.fatherName = capitalize(prompt('What is your middle name?')); person.fullName = person.surname + ' ' + person.name + ' ' + person.fatherName; return person; } credentials(); } // New line // Оформите задание String: new line как функцию с параметром-строкой. Функция должна возвращать строку с // настоящими переносами. new_line: { const newLine = (str) => { let result = str.split('\\n').join('\n'); return result; } alert(newLine(prompt("Enter the string. As a newline marker use '\\n'"))); } // Prompt OR // Оформите задание Prompt: OR как функцию, которая принимает строку для prompt и значение по умолчанию. // Функция должна возвращать введенный текст или значение по умолчанию в случае отказа пользователя вводить // что-либо. Используйте функцию без блока кода (функцию в одно выражение) prompt_or: { const promptOr = (str, defaultValue) => prompt(str) || defaultValue; alert(promptOr('Enter something', 'error')); } // Login And Password // Оформите задание Login And Password как функцию, которая принимает два параметра - правильный логин и пароль // и возвращает true если логин и пароль введенные пользователями верны, или false если пользователь не смог. loginAndPassword: { const loginAndPassword = (correctLogin, correctPassword) => { let login = prompt('Enter your login'); if (login === correctLogin) { let password = prompt('Enter your password'); if (password === correctPassword) { return alert('Congratulations! You entered correct login and password'); } else { return alert('Error! You entered wrong password'); } } else { return alert('You entered wrong login'); } } loginAndPassword('admin', 'qwerty'); } // Filter Lexics // Оформите задание Filter Lexics как функцию, принимающую любую строку для проверки и массив некорректных слов // (['бляха', 'муха', "пляха", "шабля"], например). Функция должна возвращать строку без этих некорректных слов. filter_lexics: { const filterLexics = (str, arr) => { let filteredStr = str.split(' ').filter(item => !arr.includes(item.toLowerCase())).join(' '); return filteredStr; } alert(filterLexics(prompt('Enter the string'), ['бляха', 'муха', "пляха", "шабля"])); } // Array of objects sort // Сделайте обобщенную функцию сортировки массива с объектами // Функция позволяет отсортировать любой набор данных по имени поля (второй параметр). Третьим параметром идет // необязательный Boolean, который в случае true делает сортировку по возрастанию, в случае false - по убыванию. // По умолчанию (без третьего параметра) происходит сортировка по возрастанию. array_of_objects_sort: { var persons = [ { name: "Иван", age: 17 }, { name: "Мария", age: 35 }, { name: "Алексей", age: 73 }, { name: "Яков", age: 12 }, ] const byField = (arr, fieldName, isAscending) => { let objSort = (a, b) => { if (a[fieldName] > b[fieldName]) { return isAscending || isAscending == undefined ? 1 : -1; } else if (a[fieldName] < b[fieldName]) { return isAscending || isAscending == undefined ? -1 : 1; } else { return 0; } } let sortedArr = arr.slice().sort(objSort); return sortedArr; } console.log(byField(persons, "age")); //сортирует по возрасту по возрастанию console.log(byField(persons, "name", false)); //сортирует по имени по убыванию } // Calc Func // Вспомните первое ДЗ по Javascript, в котором вы делали всякие расчеты используя код на Javascript. Оформите // это как функцию: // найдите все входящие данные, сделайте из них параметры // найдите переменную с результатом расчетов и сделайте так, что бы ваша функция возвращала этот результат. // Если результатов несколько, создайте объект из этих результатов и верните его. calc_func: { const calcFunc = (dayCount, duration) => { let totalHoursPerYear = ((dayCount * duration * 365) / 60).toFixed(2); return totalHoursPerYear; } alert("Вы тратите " + calcFunc(2, 10) + " часов в год на кофе-брейки"); }