123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323 |
- // 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 с тэгом <table> и всякими 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 = "<table>"
- let i = 1
- for (let tr of arr){
- if (i++ % 2 === 0){
- str += '<tr>'
- }else{
- str += "<tr>"
- }
- for (let td of tr){
- str += "<td>" + td + "</td>"
- }
- str += "</tr>"
- }
- str += "</table>"
- 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 = "<table>"
- let i = 1
- for (let tr of fullArr){
- if (i++ % 2 === 0){
- str += '<tr style="background-color: lightgray;">'
- }else{
- str += "<tr>"
- }
- for (let td of tr){
- str += "<td>" + td + "</td>"
- }
- str += "</tr>"
- }
- str += "</table>"
- 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 = "<form>";
- if (typeof values === 'string') {
- str += "<label>" + key + "<input type='text' value='" + values + "'/>" + "</label>";
- } else if (typeof values === 'number') {
- str += "<label>" + key + "<input type='number' value='" + values + "'/>" + "</label>";
- } else if (typeof values === 'boolean') {
- str += "<label>" + key + "<input type='checkbox' value='" + values + "'/>" + "</label>";
- }
- str += "</form>"
- 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:
- /*{
- <input type='number' id="firstNumber" />
- <input type='number' id="secondNumber" />
- <div>
- <p>Первое число поместится во втором целых <span id="divisionResult">___ </span> раз </p>
- </div>
- <script>
- const calcResult = () => {
- console.log(firstNumber.value, secondNumber.value, divisionResult.innerHTML)
- divisionResult.innerHTML = Math.floor(Math.abs(firstNumber.value/secondNumber.value ))
- }
- firstNumber.oninput = secondNumber.oninput = calcResult
- } */
- // Воспользуйтесь следующей информацией:
- // все id в HTML становятся глобальными переменными (если это имя не занято, id="prompt" не сработает, функция
- // prompt будет работать и далее);
- // Любой DOM-элемент (то, что в HTML называется тэгом или парой тэгов) является объектом;
- // Для доступа к атрибуту value тэгов input используется свойство value (например, firstNumber.value)
- // Для доступа к вложенному тексту парных тэгов используется свойство innerHTML (например, divisionResult.innerHTML)
- //
- // Заготовка выше обеспечивает запуск функции calcResult по любому изменению текста в полях ввода. Напишите в ней
- // деление значений из полей ввода и выведите резуль тат в div.
- // 15. Calc Func
- // Вспомните первое ДЗ по Javascript, в котором вы делали всякие расчеты используя код на Javascript. Оформите это как
- // функцию:
- //
- // найдите все входящие данные, сделайте из них параметры
- // найдите переменную с результатом расчетов и сделайте так, что бы ваша функция возвращала этот результат.
- // Если результатов несколько, создайте объект из этих результатов и верните его.
- /*
- {
- const amountCoffee = (coffeeCup = +prompt('Введите количество чашек кофе, которые Вы покупаете за день'),
- price = +prompt('Введите цену одной чашки кофе (грн.)')) => {
- let dailyConst = coffeeCup * price;
- console.log(dailyConst)
- }
- amountCoffee()
- } */
- //16. Calc Live +
- // Используя пример из задания Divide и функцию из Calc Func сделайте несколько полей ввода в HTML, меняя которые вы
- // будете получать результат калькуляции в каком-то div.
- /*
- <p> Введите количество чашек кофе, которые Вы покупаете за день </p>
- <input type='number' id="coffeeCup" />
- <p> Введите стоимость одной чашки кофе </p>
- <input type='number' id="price" />
- <div>
- <p> Расходы на кофе за день <span id="dailyExpenses">___ </span> грн </p>
- </div>
- <script>
- const calcResult = () => {
- dailyExpenses.innerHTML= coffeeCup.value * price.value;
- }
- coffeeCup.oninput = price.oninput = calcResult
- </script> -->
- } */
|