// 1. Temperature // Оформите Temperature как функцию, в которую параметром передается температура в одной системе, а возвращается в // другой. Никаких prompt и console.log в коде быть не должно, если вы хотите в дальнейшем пользоваться этой функцией // где угодно в коде удобно. Нужен ли блок кода в функции для решения этой задачи? /*{ const temp = a => a * 1.8 + 32; }*/ //2. RGB // Оформите Number: RGB как функцию, в которую параметрами передаются три числа (r,g,b) => . Функция должна возвращать // строку в нотации #RRGGBB. Используя условия или тернарный оператор добейтесь что бы в результате всегда было // 7 символов, даже когда значение цвета меньше 15ти. Нужен ли блок кода этой функции? /*{ const rgbToHex = (r,g,b) => { const hex = '#' + (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 hex } console.log(rgbToHex(15,10,5)) }*/ //3. Flats // Оформите Number: flats как функцию. Продумайте достаточное количество параметров для решения задачи. Функция должна // возвращать объект вида {entrance, floor}, где entrance - номер падика, floor - номер этажа на котором находится // квартира. /*{ const result = (porch, area, floor, flat) => { const total = porch * floor * area; // Общее количество квартир в доме const totalPorch = total / porch; // Количество квартир в одном подьезде const numPorch = Math.floor(1 + (flat - 1) / totalPorch) ; const numFloor = Math.floor(1 + ((flat - 1) % totalPorch) / area);// Номер подьезда console.log(flatResult); return flatResult = { numPorch, numFloor } } result(4,4,5,30); } */ // 4. Credentials // Оформите задание String: credentials как функцию без параметров. Используйте функцию capitalize из домашнего // задания по массивам. Функция должна содержать вызовы prompt и возвращать объект вида {name, surname, fatherName, // fullName} /*{ function capitalize() { const name = prompt('Введите имя'); const fatherName = prompt('Введите отчество') const surname = prompt('Введите фамилию') let fullName = name + " " + fatherName + " " + surname; const arr = fullName.split(' '); const newArr = []; arr.forEach((item) => { const word = item[0].toUpperCase() + item.slice(1); newArr.push(word); }) const obj = Object.assign({}, newArr); console.log(obj) return obj; } capitalize() } */ //5. New line // Оформите задание String: new line как функцию с параметром-строкой. Функция должна возвращать строку с настоящими // переносами. /*{ const string = (str = prompt('введите несколько строк разделенных \n')) => { return str.split('\\n').join('\n'); } let result = string() alert(result); }*/ //6. Prompt OR // Оформите задание Prompt: OR как функцию, которая принимает строку для prompt и значение по умолчанию. Функция должна // возвращать введенный текст или значение по умолчанию в случае отказа пользователя вводить что-либо. Используйте // функцию без блока кода (функцию в одно выражение) /* { const promptOr = (promptStr, promptDefault) => prompt (promptStr) || promptDefault console.log( promptOr('Введите что-то', 'ignore') ) } }*/ //7. Login And Password // Оформите задание Login And Password как функцию, которая принимает два параметра - правильный логин и пароль и // возвращает true если логин и пароль введенные пользователями верны, или false если пользователь не смог. /* { const sign = (userName = 'admin', pass ='qwerty' ) => { if (userName === 'admin') { if (pass === 'qwerty') { alert('Успешный вход'); } else if (pass === '' || pass == null) { alert('Пароль не введен'); } else { alert('Неправильный пароль'); } } else if (userName === '' || userName == null) { alert('Логин не введен'); } else { alert("Неправильный логин"); } } sign('admin', 'qwerty') }*/ // 8. For Table // Оформите задание For Multiply Table как функцию, которая принимает любой массив с массивами, а возвращает строку // HTML с тэгом и всякими tr и td. /*{ const arr = [ [0,0,0,0,0,0], [0,1,2,3,4,5], [0,2,4,6,8,10], [0,3,6,9,12,15], [0,4,8,12,16,20], [0,5,10,15,20,25] ]; const newTable = arr => { let str = "
" let i = 1 for (let tr of arr){ if (i++ % 2 === 0){ str += '' }else{ str += "" } for (let td of tr){ str += "" } str += "" } str += "
" + td + "
" return (str) } newTable(arr) } */ //9. Filter Lexics // Оформите задание Filter Lexics как функцию, принимающую любую строку для проверки и массив некорректных слов // (['бляха', 'муха', "пляха", "шабля"], например). Функция должна возвращать строку без этих некорректных слов. /*{ let arrBadWords = ['бляха', 'муха', "пляха", "шабля"]; let str = prompt("Введите текст"); let filterLexics = (str, arrBadWords) => { let arr = str.split(" "); const f = (word) => { for (let badWords of arrBadWords) { if (word === badWords) { return false } else { return true } } } let arrNew = arr.filter(f); return arrNew.join(' ') } console.log(filterLexics(str, arrBadWords)) } */ // 10. Currency Table +- // Оформите задание Currency Table как функцию, без параметров, которая складывает полученные данные во внутренний // двумерный массив, после чего отображает его используя функцию из задания For Table { fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json()) .then(data => { const fullArr = Object.entries(data.rates); console.log(fullArr ) const newTable = () => { let str = "" let i = 1 for (let tr of fullArr){ if (i++ % 2 === 0){ str += '' }else{ str += "" } for (let td of tr){ str += "" } str += "" } str += "
" + td + "
" document.write(str) } newTable() }) } //11. Form + // Оформите задание Form как функцию, которая принимает любой объект как параметр и создает форму на экране. /*{ const car = { "Name":"chevrolet chevelle malibu", "Cylinders":8, "Displacement":307, "Horsepower":130, "Weight_in_lbs":3504, "Origin":"USA", "in_production": false } const createForm = car => { for (const [key, values] of Object.entries(car)) { str = "
"; if (typeof values === 'string') { str += ""; } else if (typeof values === 'number') { str += ""; } else if (typeof values === 'boolean') { str += ""; } str += "
" document.write(str); } } createForm(car) }*/ //12. Array of objects sort + // Сделайте обобщенную функцию сортировки массива с объектами // Функция позволяет отсортировать любой набор данных по имени поля (второй параметр). Третьим параметром идет // необязательный Boolean, который в случае true делает сортировку по возрастанию, в случае false - по убыванию. // По умолчанию (без третьего параметра) происходит сортировка по возрастанию. // Если параметр не задан - внутри функции он равен undefined /*{ let persons = [ {name: "Иван", age: 17}, {name: "Мария", age: 35}, {name: "Алексей", age: 73}, {name: "Яков", age: 12}, ] function sort(arr, key,boolean){ arr.sort(mySort) function mySort(a, b){ return (boolean) ? (a[key] > b[key]) : (b[key] > a[key]); } return arr; } console.log(sort(persons, "name", false)); } */ // 14. Divide // Реализуйте задание Number: divide в HTML: /*{

Первое число поместится во втором целых ___ раз

--> } */