// Материал // Как обычно, запустите все примерчики из материала занятия, разберитесь что там и как работает, возьмите отладчик / консоль и поиграйтесь с ними.походу возможно найдутся ошибки, сообщите мне о них пожалуйста { // сделано } // Temperature // Оформите Temperature как функцию, в которую параметром передается температура в одной системе, а возвращается в другой.Никаких prompt и console.log в коде быть не должно, если вы хотите в дальнейшем пользоваться этой функцией где угодно в коде удобно.Нужен ли блок кода в функции для решения этой задачи ? { const functionTemperature = (temperature, unit) => { let k unit.toLowerCase() === 'цельсий' ? k = 0 : unit.toLowerCase() === 'фаренгейт' ? k = 1 : alert('Вы ввели неправильну единицу измерения. Перепроверьте написание!') const temperatureConvertKelvin = `Указанная Вами температура соответствует: ${(1.8 * +temperature * (k + 1) + 32).toFixed(2)} в градусах Фаренгейта` const temperatureConvertCelsiy = `Указанная Вами температура соответствует: ${((+temperature - 32) / 1.8 * k).toFixed(2)} в градусах Цельсия` unit.toLowerCase() === 'цельсий' ? alert(temperatureConvertKelvin) : unit.toLowerCase() === 'фаренгейт' ? alert(temperatureConvertCelsiy) : alert('Один или несколько параметров введены неправильно') } functionTemperature(prompt('Укажите любое значение температуры (цифрами)'), prompt('Введите единицу измерения: Цельсий/Фаренгейт')) } // RGB // Оформите Number: RGB как функцию, в которую параметрами передаются три числа(r, g, b) => . Функция должна возвращать строку в нотации #RRGGBB.Используя условия или тернарный оператор добейтесь что бы в результате всегда было 7 символов, даже когда значение цвета меньше 15ти.Нужен ли блок кода этой функции ? { const colorConverter = ([red, green, blue]) => alert('Указанный Вами цвет для CSS: #' + ((+red) > 255 ? alert('Слишком большая цифра') : ((+red) < 16 ? + '0' + (+red).toString(16).toUpperCase() : (+red).toString(16).toUpperCase())) + ((+green) > 255 ? alert('Слишком большая цифра') : ((+green) < 16 ? + '0' + (+green).toString(16).toUpperCase() : (+green).toString(16).toUpperCase())) + ((+blue) > 255 ? alert('Слишком большая цифра') : ((+blue) < 16 ? + '0' + (+blue).toString(16).toUpperCase() : (+blue).toString(16).toUpperCase()))) colorConverter(['Введите целое число 0 ... 255 для красного цвета', 'Введите целое число 0 ... 255 для зеленого цвета', 'Введите целое число 0 ... 255 для синего цвета'].map(prompt)) } // Flats // Оформите Number: flats как функцию.Продумайте достаточное количество параметров для решения задачи.Функция должна возвращать объект вида { entrance, floor }, где entrance - номер падика, floor - номер этажа на котором находится квартира. { const numberFlats = ([numberOfFloors, numberOfFlats, searchingFlat]) => { const numberFlats = {} const searchingEntrance = Math.ceil(searchingFlat / ((+numberOfFloors) * +numberOfFlats)) const searchingFloor = Math.ceil((+searchingFlat) / (+numberOfFlats) - (+numberOfFloors) * (searchingEntrance - 1)) numberFlats.entrance = searchingEntrance numberFlats.floor = searchingFloor return numberFlats } numberFlats(['Введите количество этажей в доме:', 'Введите количество квартир на этаже:', 'Введите номер квартиры, которую нунжно найти:'].map(prompt)) } // Credentials // Оформите задание String: credentials как функцию без параметров.Используйте функцию capitalize из домашнего задания по массивам.Функция должна содержать вызовы prompt и возвращать объект вида { name, surname, fatherName, fullName } { const enterPersonData = () => { const arr = {} const name = (prompt('Ввеедиет Ваше Имя в поле ниже')).trim() arr.name = `${name[0].toUpperCase()}${name.slice(1).toLowerCase()}` const surname = (prompt('Ввеедиет Вашу Фамилию в поле ниже')).trim() arr.surname = `${surname[0].toUpperCase()}${surname.slice(1).toLowerCase()}` const fatherName = (prompt('Ввеедиет Ваше Отчество в поле ниже')).trim() arr.fatherName = `${fatherName[0].toUpperCase()}${fatherName.slice(1).toLowerCase()}` const fullName = `${name[0].toUpperCase()}${name.slice(1).toLowerCase()} ${surname[0].toUpperCase()}${surname.slice(1).toLowerCase()} ${fatherName[0].toUpperCase()}${fatherName.slice(1).toLowerCase()}` arr.fullName = fullName return arr } enterPersonData() } // New line // Оформите задание String: new line как функцию с параметром - строкой.Функция должна возвращать строку с настоящими переносами. { const string = (str) => str.split('\\n').join('\n') alert(string(prompt('Введите в поле ниже любую строку. Для перехода на новую строку используйте комбинацию: \n'))) } // Prompt OR // Оформите задание Prompt: OR как функцию, которая принимает строку для prompt и значение по умолчанию.Функция должна возвращать введенный текст или значение по умолчанию в случае отказа пользователя вводить что - либо.Используйте функцию без блока кода(функцию в одно выражение) { // const defaultValue = const age = (insertData, defaultValue) => insertData !== null && insertData !== '' ? `Вы родились в ${2022 - +insertData} году` : defaultValue alert(age(prompt('Укажите в поле, сколько вам полных лет (цифрами):'), 'Вы не ввели ваш возраст!')) } // Login And Password // Оформите задание Login And Password как функцию, которая принимает два параметра - правильный логин и пароль и возвращает true если логин и пароль введенные пользователями верны, или false если пользователь не смог. { const autorization = (login, pass) => login === 'admin' && pass === 'qwerty' autorization(prompt('Введите в поле ниже логин'), prompt('Введите пароль в поле нижне')) } // For Table // Оформите задание For Multiply Table как функцию, которая принимает любой массив с массивами, а возвращает строку HTML с тэгом < table > и всякими tr и td. { newArr = [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12], [0, 4, 8, 12, 16]] const table = (arr) => { let i = 0 let str = `` for (let string of arr) { str += (i % 2) ? `` : `` i++ for (let number of string) { str += `` } str += `` } str += `
${number}
` return str } table(newArr) } // Filter Lexics // Оформите задание Filter Lexics как функцию, принимающую любую строку для проверки и массив некорректных слов(['бляха', 'муха', "пляха", "шабля"], например).Функция должна возвращать строку без этих некорректных слов. { const string = 'Скоро бляха зима, ни одна муха на улицу не вылетит. Пляха - это шото, а шабля - это мощное оружие' const badWords = ['бляха', 'муха', "пляха", "шабля"] const checkString = (str, badArr) => { const result = str.toLowerCase().split(' ').filter(x => !badArr.includes(x) ? x : '') return result.join(' ') } checkString(string, badWords) } // Currency Table // Оформите задание Currency Table как функцию, без параметров, которая складывает полученные данные во внутренний двумерный массив, после чего отображает его используя функцию из задания For Table { const arrTable = () => { fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json()) .then(data => { const arrRow = [] for (let [key, value] of Object.entries(data.rates)) { const arrData = [] arrData.push(key) for (let num of Object.values(data.rates)) { arrData.push(+((num / value).toFixed(4))) } arrRow.push(arrData) } const table = (arr) => { let i = 0 const currencies = [] for (const currency in data.rates) { currencies.push(currency) } // table header let str = `` str += `` for (const currency of currencies) { str += `` } str += `` // table body for (let string of arr) { str += !(i % 2) ? `` : `` i++ for (let number of string) { str += `` } str += `` } str += `
${currency}
${number}
` return str } document.write(table(arrRow)) }) } arrTable() } // Form // Оформите задание Form как функцию, которая принимает любой объект как параметр и создает форму на экране. { const enterForm = (insertObject) => { let str = `
` for (let [key, value] of Object.entries(insertObject)) { str += `

` } str += `
` return document.write(str) } // Объект для теста const car = { "Name": "chevrolet chevelle malibu", "Cylinders": 8, "Displacement": 307, "Horsepower": 130, "Weight_in_lbs": 3504, "Origin": "USA", "in_production": false } enterForm(car) } // Array of objects sort // Сделайте обобщенную функцию сортировки массива с объектами // Функция позволяет отсортировать любой набор данных по имени поля(второй параметр).Третьим параметром идет необязательный Boolean, который в случае true делает сортировку по возрастанию, в случае false - по убыванию.По умолчанию(без третьего параметра) происходит сортировка по возрастанию. { const persons = [ { name: "Иван", age: 17 }, { name: "Мария", age: 35 }, { name: "Алексей", age: 73 }, { name: "Яков", age: 12 }, { name: "Семен", age: 24 }, { name: "Антон", age: 2 }, { name: "Петр", age: 102 }, { name: "Николай", age: 44 } ] const sort = (sortArr, sortKey, sortOrder) => { const sortFunction = (a, b) => { if (sortOrder !== false) { return a[sortKey] > b[sortKey] ? 1 : -1; } else { return a[sortKey] > b[sortKey] ? -1 : 1; } } const newSortArr = sortArr.slice().sort(sortFunction) return newSortArr } console.log(`Сортировка по возрасту (по возрастанию):`, sort(persons, "age")) console.log(`Сортировка по имени (по убыванию):`, sort(persons, "name", false)) } // Table // Оформите задание Table как функцию, которая принимает следующие параметры: //done // a. любой массив объектов для отображения //done // b. поле, по которому сортировать //done // c. порядок сортировки(убывание / возрастание) //done // Перед отображением: // a. скопируйте исходный массив, что бы сортировка не изменила оригинал; // b. отсортируйте с помощью функции из предыдущего задания // c. Отображение возьмите из задания Table { const persons = [ { name: 'Мария', fatherName: 'Ивановна', surname: 'Иванова', sex: 'female', // married: true, // age: 27 }, { name: 'Николай', fatherName: 'Иванович', surname: 'Иванов', age: 15, // sex: 'male', // married: false, }, { name: 'Петр', fatherName: 'Иванович', surname: 'Иванов', married: true, // sex: 'male', // age: 31 } ] const sort = (sortArr, sortKey, sortOrder) => { // copy origin arr let newSortArr = sortArr.slice() // sorting arr const sortFunction = (a, b) => { if (sortOrder !== false) { return a[sortKey] > b[sortKey] ? 1 : -1; } else { return a[sortKey] > b[sortKey] ? -1 : 1; } } newSortArr.sort(sortFunction) // create arr with items of header const keys = [] for (const child of newSortArr) { for (const key in child) { if (!keys.includes(key)) { keys.push(key); } } } // create table header let str = `` for (let key of keys) { str += `` } str += `` // create table body for (const child of newSortArr) { str += `` for (const num of keys) { str += `` } str += `` } str += `
${key}
${(Object.keys(child)).includes(num) ? child[num] : ''}
` // output table data document.write(str) return newSortArr } sort(persons, "name", false) console.log(`Исходный массив`, persons) } // Divide // Реализуйте задание Number: divide в HTML: { // реализовано в HTML файле HW07.html } // Calc Func // Вспомните первое ДЗ по Javascript, в котором вы делали всякие расчеты используя код на Javascript.Оформите это как функцию: // найдите все входящие данные, сделайте из них параметры // найдите переменную с результатом расчетов и сделайте так, что бы ваша функция возвращала этот результат. // Если результатов несколько, создайте объект из этих результатов и верните его. { const params = [ { period: "day", lightUse: 100, rate: 144, }, { period: "night", lightUse: 100, rate: 144, }, { daysInMonth: 30 } ] const dataElectrisity = (arr) => { const result = {} result.priceDay = (arr[0].lightUse * arr[0].rate * (arr[0].period === 'day' ? 1 : 0.5)) / 100 result.priceNigth = (arr[1].lightUse * arr[1].rate * (arr[1].period === 'day' ? 1 : 0.5)) / 100 result.priceMonth = result.priceDay + result.priceNigth result.usePerDay = +((arr[0].lightUse + arr[1].lightUse) / arr[2].daysInMonth).toFixed(2) return result } dataElectrisity(params) } // Calc Live // Используя пример из задания Divide и функцию из Calc Func сделайте несколько полей ввода в HTML, меняя которые вы будете получать результат калькуляции в каком - то div. { // реализовано в HTML файле HW07.html }