123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464 |
- // 1. Literals +
- // Найдите несколько окружающих объектов реального мира и создайте соответственные объекты Javascript. Например:
- /*{
- const dog = {
- name : "leo",
- color : "orange",
- breed : "spitz",
- }
- }*/
- // 2. Literals expand +
- // Дайте возможность пользователю добавить любые два свойства в эти объекты с любыми значениями. Обеспечьте ввод названия
- // ключа и значения через prompt прямо в литерале объекта {}
- /*{
- const car = {
- brand : "Toyota",
- }
- car[prompt("Введите ключ")] = prompt('Введите значение для ключа');
- car[prompt("Введите ключ")] = prompt('Введите значение для ключа');
- console.log(car)
- }*/
- //3. Literals copy +
- // Пусть пользователь введет еще одно свойство в переменную. Вставьте в новый объект эту переменную.
- // Скопируйте объект из предыдущего задания в новый объект.
- /*{
- const car = {
- brand : "Toyota",
- model : "Camry",
- year : "2022"
- }
- const newCar = {...car}
- newCar[prompt("Введите ключ")] = prompt('Введите значение для ключа');
- console.log(newCar)
- }*/
- //4. Html tree +
- /*{
- let form = {
- tagName : 'form',
- children : [
- {
- tagName: 'div',
- children: [
- {
- tagName: "span",
- children: ["Enter a data please:"],
- },
- {
- tagName: 'input',
- attrs: {
- type: 'text',
- id: 'name'
- },
- },
- {
- tagName: 'input',
- attrs: {
- type: 'text',
- id: 'surname'
- }
- }
- ],
- },
- {
- tagName: 'div',
- children: [
- {
- tagName: 'button',
- attrs: {
- id: 'ok'
- },
- children: ["OK"]
- },
- {
- tagName: 'button',
- attrs: {
- type: 'text',
- id: 'cancel'
- },
- children: ["Cancel"]
- }
- ]
- }
- ]
- }
- console.log(form.children[1].children[1].children);
- console.log(form.children[0].children[2].attrs.id)
- } */
- // 5. Parent +
- // Добавьте каждому объекту тэга из предыдущего задания связь с родителем, используя свойство parent и присвоение
- /*{
- let form = {
- tagName : 'form',
- children : [
- {
- tagName: 'div',
- children: [
- {
- tagName: "span",
- children: ["Enter a data please:"],
- },
- {
- tagName: 'input',
- attrs: {
- type: 'text',
- id: 'name'
- },
- },
- {
- tagName: 'input',
- attrs: {
- type: 'text',
- id: 'surname'
- }
- }
- ],
- },
- {
- tagName: 'div',
- children: [
- {
- tagName: 'button',
- attrs: {
- id: 'ok'
- },
- children: ["OK"]
- },
- {
- tagName: 'button',
- attrs: {
- type: 'text',
- id: 'cancel'
- },
- children: ["Cancel"]
- }
- ]
- }
- ]
- }
- body.children[0].parent = body;
- body.children[1].parent = body;
- body.children[0].children[0].parent = body.children[0].parent;
- body.children[0].children[1].parent = body.children[0].parent;
- body.children[0].children[2].parent = body.children[0].parent;
- body.children[0].children[3].parent = body.children[0].parent;
- body.children[1].children[0].parent = body.children[1].parent;
- body.children[1].children[1].parent = body.children[1].parent;
- }
- */
- // 6. Change OK +
- // Добавьте(или измените) любой введенный пользователем атрибут тэга <button id='ok'> из задания HTML Tree.
- // Пользователь также вводит значение этого атрибута
- /*{
- let form = {
- tagName : 'form',
- children : [
- {
- tagName: 'div',
- children: [
- {
- tagName: "span",
- children: ["Enter a data please:"],
- },
- {
- tagName: 'input',
- attrs: {
- type: 'text',
- id: 'name',
- },
- },
- {
- tagName: 'input',
- attrs: {
- type: 'text',
- id: 'surname'
- }
- }
- ],
- },
- {
- tagName: 'div',
- children: [
- {
- tagName: 'button',
- attrs: {
- id: 'ok'
- },
- children: ["OK"]
- },
- {
- tagName: 'button',
- attrs: {
- type: 'text',
- id: 'cancel'
- },
- children: ["Cancel"]
- }
- ]
- }
- ]
- }
- form.children[1].children[0].attrs['maxLength'] = prompt('Введите значение maxLength');
- console.log(form.children[1].children[0].attrs)
- }*/
- //7. Destructure +
- // Используя деструктуризацию структуры из задания HTML Tree, Выведите значения текста в тэге span,
- // Выведите значения текста во второй кнопке и Выведите значение атрибута id во втором input.
- /*{
- let form = {
- tagName : 'form',
- children : [
- {
- tagName: 'div',
- children: [
- {
- tagName: "span",
- children: ["Enter a data please:"],
- },
- {
- tagName: 'input',
- attrs: {
- type: 'text',
- id: 'name',
- },
- },
- {
- tagName: 'input',
- attrs: {
- type: 'text',
- id: 'surname'
- }
- }
- ],
- },
- {
- tagName: 'div',
- children: [
- {
- tagName: 'button',
- attrs: {
- id: 'ok'
- },
- children: ["OK"]
- },
- {
- tagName: 'button',
- attrs: {
- type: 'text',
- id: 'cancel'
- },
- children: ["Cancel"]
- }
- ]
- }
- ]
- }
- const textSpan = form.children[0].children[0].children;
- console.log(textSpan);
- const textButton = form.children[1].children[1].children;
- console.log(textButton);
- const id = form.children[0].children[2].attrs.id;
- console.log(id)
- } */
- // 8. Destruct array +
- // напишите код, который используя деструктуризацию положит:
- // четные числа в переменные even1, even2; нечетные в odd1, odd2, odd3; буквы в отдельный массив
- /*{
- let arr = [1,2,3,4,5,"a","b","c"];
- [odd1, even1, odd2, even2, odd3, ...letters] = arr;
- } */
- // 9. Destruct string +
- //// напишите код, который используя деструктуризацию положит: число в переменную number; букву a в переменную s1;
- // букву b в переменную s2; букву c в переменную s3
- /*{
- let arr = [1, "abc"];
- [number, [s1, s2, s3]] = arr;
- } */
- //10. Destruct 2 +
- //извлеките используя деструктуризацию имена детей в переменные name1 и name2
- /*{
- let obj = { name: 'Ivan',
- surname: 'Petrov',
- children: [
- {name: 'Maria'},
- {name: 'Nikolay'}]};
- const [name1,name2] = obj.children;
- console.log(name1, name2)
- } */
- // 11. Destruct 3 +
- // извлеките используя деструктуризацию объектов два первых элемента и длину массива в переменные a, b и length
- /*{
- const arr = [1,2,3,4,5,6,7,10];
- const {0:a, 1:b, length} = arr;
- }*/
- // 12. Copy delete +
- // Сделайте копию одного из объектов из задания Literals без ключа, который введет пользователь.
- /*{
- const dog = {
- name: "leo",
- color: "orange",
- breed: "spitz",
- }
- const dog2 = {...dog};
- dog2[prompt('Добавьте одно из свойств собаки')] = prompt('Введите значение');
- console.log(dog2)
- } */
- // 13.Currency real rate +
- // Ниже приведен код, который скачивает актуальную информацию о курсах валют. Скопируйте ссылку из него вставьте в
- // браузер интереса ради. Реализуйте калькулятор обмена валют следующим образом:
- /*{
- let sum = prompt("Введите сумму в исходной валюте")
- fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json())
- .then(data => {
- const {[prompt("Введите исходную валюту").toUpperCase()]:baseCurrency} = data.rates;
- const {[prompt("Введите валюту в которую просходит конвертация").toUpperCase()]:quoteCurrency} = data.rates;
- let result = baseCurrency/quoteCurrency*sum;
- console.log(result)
- console.log(data)
- })
- }*/
- // 14. Currency drop down +
- // Сделайте выпадающий список с названиями всех валют, используя код из прошлого задания и накопление HTML-тэгов
- // в строковой переменной. Для выпадающих списков в HTML предусмотрены тэги <select> и <option>
- /* { fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json())
- .then(data => {
- console.log(data);
- let rates = Object.keys(data.rates);
- console.log(rates);
- let str = "<select>";
- for (let currency of rates){
- str += "<option>"+ currency + "</option>";
- }
- str += "</select>"
- document.write(str);
- })
- } */
- // 15. Currency table +
- // Сделайте двумерную таблицу с курсами между всеми возможными парами валют по типу таблицы Пифагора, используя
- // заготовку из задания Currency real rate:
- /*
- fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json())
- .then(data => {
- let table = '<table>'
- table += '<tr><td></td>'
- for (let currency in data.rates){
- table += '<td>' + currency + '</td>'
- }
- table += '</tr>'
- for (let currencyVertical in data.rates){
- table += '<tr><td>' + currencyVertical + '</td>';
- for (let currencyHorizontal in data.rates) {
- table += `<td>${data.rates[currencyHorizontal] / data.rates[currencyVertical]}</td>`
- }
- }
- table += '</table>'
- document.write(table)
- })
- */
- //16. Form +
- // Напишите код, который их любого объекта создает форму HTML. Например для такого объекта
- /*{
- const car = {
- "Name":"chevrolet chevelle malibu",
- "Cylinders":8,
- "Displacement":307,
- "Horsepower":130,
- "Weight_in_lbs":3504,
- "Origin":"USA",
- "in_production": false
- }
- for (const [key, values] of Object.entries(car)) {
- console.log(key, values)
- let 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);
- }
- } */
- //17. Table в конспекте
- // Даден любой массив с объектами
- const persons = [
- {
- name: 'Мария',
- fatherName: 'Ивановна',
- surname: 'Иванова',
- sex: 'female'
- },
- {
- name: 'Николай',
- fatherName: 'Иванович',
- surname: 'Иванов',
- age: 15
- },
- {
- name: 'Петр',
- fatherName: 'Иванович',
- surname: 'Иванов',
- married: true
- },
- ]
- let arrColumn = [];
- for (let obj of persons) {
- for (let key in obj) {
- if (!(arrColumn.includes(key))) {arrColumn.push(key)}
- }
- }
- let table = '<table>';
- table += '<tr>'
- for (let th of arrColumn){
- table += '<th>' + th + '</th>'
- }
- table += '</tr>'
- for ( let obj of persons) {
- table += '<tr>';
- for (column of arrColumn){
- table += '<td>'
- if (obj[column]) { table += obj[column] }
- table += '</td>'
- }
- table += '</tr>';
- }
- table += '</table>'
- document.write(table)
|