//Temperature
//Оформите Temperature как функцию, в которую параметром передается температура в одной системе, а возвращается в другой. Никаких prompt и console.log в коде быть не должно, если вы хотите в дальнейшем пользоваться этой функцией где угодно в коде удобно. Нужен ли блок кода в функции для решения этой задачи?
{
const temperatureCtoF = c => c * 9/5 + 32;
}
/*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(0,0,0))
}
/*Flats
Оформите Number: flats как функцию. Продумайте достаточное количество параметров для решения задачи. Функция должна возвращать объект вида {entrance, floor}, где entrance - номер падика, floor - номер этажа на котором находится квартира.*/
{
const entranceAndFlor = (apartmentNumber, houseFloors, apartmentОnFloor) => {
const apartmentOnFrontDoor = houseFloors * apartmentОnFloor;
const apartmentNumberInFrontDoor = (apartmentNumber -1) % apartmentOnFrontDoor;
const floor = Math.floor(apartmentNumberInFrontDoor/apartmentОnFloor)+1;
const entrance = Math.ceil(apartmentNumber / apartmentOnFrontDoor);
return result = {
entrance,
floor
}
}
console.log(entranceAndFlor(36,9,4))
}
/*Credentials
Оформите задание String: credentials как функцию без параметров. Используйте функцию capitalize из домашнего задания по массивам. Функция должна содержать вызовы prompt и возвращать объект вида {name, surname, fatherName, fullName}*/
{
const person = () => {
let trimAndCapitalize = (str) => str.trim()[0].toUpperCase() + str.trim().slice(1).toLowerCase();
let surname = trimAndCapitalize (
prompt('введите вашу фамилию.\nMожете добавить пару пробелов в конце или начале. Написать с маленькой буквы или даже сделать пару букв в середине фамилии большими, я все поправлю!')
);
let name = trimAndCapitalize (
prompt('введите ваше имя')
);
let fatherName = trimAndCapitalize (
prompt('введите ваше отчество')
);
let fullName = surname + " " + name + " " + fatherName;
return {
name,
surname,
fatherName,
fullName
}
}
}
/*New line
Оформите задание String: new line как функцию с параметром-строкой. Функция должна возвращать строку с настоящими переносами. */
{
const stringNewline = (str) => str.split('\\n').join('\n')
console.log( stringNewline('sdf\n\nsdf\nsdf') )
}
/*Prompt OR
Оформите задание Prompt: OR как функцию, которая принимает строку для prompt и значение по умолчанию. Функция должна возвращать введенный текст или значение по умолчанию в случае отказа пользователя вводить что-либо. Используйте функцию без блока кода (функцию в одно выражение)*/
//Prompt: or
//Для задания Number: age используя ИЛИ || вывести сообщение об ошибке (alert) если пользователь не введет возраст или нажмет отмену (т. е. prompt выдаст пустую строку или null, интерпретируемую как false).
{
const promptOr = (promptStr, promptDefault) => prompt (promptStr) || promptDefault
console.log( promptOr('введи что-то', 'ignore') )
}
/*Login And Password
Оформите задание Login And Password как функцию, которая принимает два параметра - правильный логин и пароль и возвращает true если логин и пароль введенные пользователями верны, или false если пользователь не смог.*/
//Login and password
//Напишите код, который спрашивает логин, проверяет его на верность, в случае если логин верен, просит ввести пароль и проверяет его. В случае несовпадения логина или пароля выводить alert с текстом ошибки. В случае успешного логина - alert с поздравлением. Правильные логин: admin и пароль: qwerty. Используйте вложенные if и else.
{
const LoginAndPass = (loginTrue, passTrue) => {
const login = prompt("login");
if (login !== loginTrue){
return false
}else{
const passs = prompt("pass");
if (passs !== passTrue){
return false;
}else{
return true
}
}
}
console.log(LoginAndPass("admin", "admin"))
}
/* For Table
Оформите задание For Multiply Table как функцию, которая принимает любой массив с массивами, а возвращает строку HTML с тэгом
и всякими tr и td. */
/* For Multiply Table
Выведите таблицу умножения 5x5 из задания Multiply table в таблицу, используя вложенные for .... of и document.write
Сделайте черезстрочную подсветку - задавайте четным строкам один цвет фона, нечетным - другой*/
{
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 arrToHtml = (arr) => {
let str = ""
let i = 1
for (let tr of arr){
if (i++ % 2 === 0){
str += ''
}else{
str += "
"
}
for (let td of tr){
str += "" + td + " | "
}
str += "
"
}
str += "
"
return (str)
}
console.log(arrToHtml(arr))
}
/*Filter Lexics
Оформите задание Filter Lexics как функцию, принимающую любую строку для проверки и массив некорректных слов (['бляха', 'муха', "пляха", "шабля"], например). Функция должна возвращать строку без этих некорректных слов.*/
/*Filter Lexics
Пусть пользователь вводит строку. Разбейте её по пробелам. Используя filter верните true если элемент массива не состоит в определенном массиве недопустимых слов. Если же элемент массива - недопустимое слово, функция, переданная в filter должна возвращать false. Соберите массив в строку обратно.*/
{
let FilterLexics = (str, arrBadWords) => {
let arr = str.split(" ");
const f = (word) => {
for (let BadWord of arrBadWords){
if (word.toLowerCase() === BadWord.toLowerCase()){return false}
}
return true;
}
let arrNew = arr.filter(f);
return arrNew.join(' ')
}
console.log(FilterLexics("ilter Lexics Оформите задание Filter Lexics как функцию, принимающую любую строку для проверки и массив некорректных слов бляха , муха , пляха, шабля, например). Функция должна возвращать строку без этих некорректных слов." , ['бляха', 'муха', 'пляха', 'шабля']))
}
/*Currency Table
Оформите задание Currency Table как функцию, без параметров, которая складывает полученные данные во внутренний двумерный массив, после чего отображает его используя функцию из задания For Table*/
/*Currency table
Сделайте двумерную таблицу с курсами между всеми возможными парами валют по типу таблицы Пифагора, используя заготовку из задания Currency real rate:
Используйте только один запрос на сервер. Используйте расчет кросскурса для вычисления курса между любой парой валют*/
{
const arrCurency = () =>{
fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json())
.then(data => {
const arrToHtml = (arrInner) => {
let str = ""
let i = 1
for (let tr of arrInner){
if (i++ % 2 === 0){
str += ''
}else{
str += "
"
}
for (let td of tr){
str += "" + td + " | "
}
str += "
"
}
str += "
"
document.write(str)
}
arr = [];
let arrTh = ["",]
for (let currency in data.rates){
arrTh.push(currency)
}
arr.push(arrTh)
for (let currencyStart in data.rates){
let arrTr = []
arrTr.push(currencyStart)
for (let currencyFinish in data.rates) {
arrTr.push(data.rates[currencyFinish] / data.rates[currencyStart])
}
arr.push(arrTr)
}
console.log(arr)
arrToHtml(arr)
})
}
arrCurency()
}
/*Form
Оформите задание Form как функцию, которая принимает любой объект как параметр и создает форму на экране.*/
{
const car = {
"Name":"chevrolet chevelle malibu",
"Cylinders":8,
"Displacement":307,
"Horsepower":130,
"Weight_in_lbs":3504,
"Origin":"USA",
"in_production": false
}
let objToForm = (obj) => {
let form = '