function runHTMLTree() { let body = { tagName: 'body', paired: false, attrs: {}, children: [ { tagName: 'div', paired: true, children: [ { tagName: 'span', paired: true, textContent: 'Enter a data please:', attrs: {}, }, { tagName: 'br', paired: false }, { tagName: 'input', paired: false, attrs: { type: 'text', id: 'name' } }, { tagName: 'input', paired: false, attrs: { type: 'text', id: 'surname' }, } ] }, { tagName: 'div', paired: true, children: [ { tagName: 'button', attrs: { id: 'ok' }, textContent: 'OK' }, { tagName: 'button', attrs: { id: 'cancel' }, textContent: 'Cancel' }, ] }, ] }; console.log(body.children[1].children[1].attrs.id); console.log(body.children[1].children[0].attrs.id); } function runDeclarativeFields() { const text = 'Введите желаемый параметр ноутбука: '; let notebook = { brand: prompt(`${text} brand`), type: prompt(`${text} type`), model: prompt(`${text} model`), ram: prompt(`${text} ram`), size: +prompt(`${text} size`), weight: +prompt(`${text} weight`), resolution: { width: +prompt(`${text} width`), height: +prompt(`${text} height`), }, }; const text1 = 'Введите желаемый параметр телефона: '; let phone = { brand: prompt(`${text1} brand`), model: prompt(`${text1} model`), ram: +prompt(`${text1} ram`), color: prompt(`${text1} color`), }; const text2 = 'Введите характеристику человека: '; let person = { name: prompt(`${text2} имя`), surname: prompt(`${text2} фамилия`), married: confirm('Этот человек замужем/женат?'), }; } function runObjectLinks() { const text2 = 'Введите характеристику человека: '; let person = { name: prompt(`${text2} имя`), surname: prompt(`${text2} фамилия`), married: confirm('Этот человек замужем/женат?'), smartphone: { owner: { laptop: { owner: { smartphone: confirm('У человека есть смартфон?') }, } } } }; console.log(person.smartphone.owner.laptop.owner.smartphone = person.smartphone); } function runImperativeArrayFill3() { let arr = []; arr[0] = +prompt('Введите число'); arr[1] = +prompt('Введите число'); arr[2] = +prompt('Введите число'); console.log(arr); } function runWhileConfirm() { let result = confirm('Вы голодны?'); while (result === false) { result = confirm('Вы голодны?'); } } function runArrayFill() { const arr = []; let question = prompt('Введите любое слово'); while (question !== null && question !== '') { arr.push(question); question = prompt('Введите любое слово'); } } function runArrayFillNoRush() { const arr = []; for (let i = 0; i < 5; i++) { arr[i] = prompt('Введите поочередно до 10 слов, введено: ' + i); if (arr[i] === '') { arr[i] = prompt('Введите поочередно до 10 слов'); } else if (arr[i] === null) { alert('Стоп!'); break; } } } function runInfiniteProbability() { let i = 0; let counter = 0; while (i < 0.9) { i = Math.random(); counter++; if (i > 0.9) { break; } } alert(`Тело цикла выполнится ${counter++} раз`); } function runEmptyLoop() { while (prompt() === null) { } } function runProgressionSum() { let sum = 0; let n = prompt('Введите max значение прогрессии с шагом 3 (1, 4, 7...)'); for (let i = 1; i <= n; i += 3) { sum += i; } alert(`Сумма ${sum}`); } function runChessOneLine() { let str = ''; for (let i = 1; i < 21; i++) { if (i % 3) { str += ' '; } else { str += '#'; } } console.log(str); } function runNumbers() { let str = ''; document.write(str); for (let i = 1; i < 10; i++) { str += ''; for (let j = 0; j < 10; j++) { str += ''; } str += ''; } str += '
'; str += j; str += '
'; document.write(str); } function runChess() { let dot = '.'; let grid = '#'; let str = ''; document.write(str); for (let i = 1; i < 11; i++) { str += ''; for (let j = 1; j < 10; j++) { str += ''; } str += ''; } str += '
'; if ((i + j) % 2) { str += dot; } else { str += grid; } str += '
'; document.write(str); } function runCubes() { let arr = []; for (let i = 0; i < 10; i++) { arr.push(i ** 3); } } function runMultiplyTable(){ let table = new Array(10); for (let i = 1; i < table.length; i++) { table[i] = new Array(10); } for (let row = 1; row < table.length; row++) { console.log(table.length); for (let col = 1; col < table[row].length; col++) { console.log(table[row].length); table[row][col] = row * col; } } console.log(table[5][7]); } function runTriangle() { function getPyramid(rows){ let str = ''; str += '' for (let i = 1; i <= rows; i++) { str += ''; for (let j = 1; j <= (rows - i); j++) { str += ''; } for(let k = 1; k <= (2*i) -1; k++){ str += ''; } for (let j = 1; j <= rows -i ; j++) { str += ''; } str += ''; } str += '
'; str += '.'; str += ''; str += "#"; str += ''; str += '.'; str += '
'; document.write(str); } getPyramid(prompt('Введите число, чтобы задать высоту треугольника')) } const tasksArray = [ ['html tree', runHTMLTree], ['declarative fields', runDeclarativeFields], ['object links', runObjectLinks], ['imperative array fill', runImperativeArrayFill3], ['while confirm', runWhileConfirm], ['array fill', runArrayFill], ['array fill nopush', runArrayFillNoRush], ['infinite probability', runInfiniteProbability], ['empty loop', runEmptyLoop], ['progression sum', runProgressionSum], ['chess one line', runChessOneLine], ['numbers', runNumbers], ['chess', runChess], ['cubes', runCubes], ['multiply table', runMultiplyTable], ['Задание на синий пояс: Треугольник', runTriangle] ]; let $list = document.querySelector('.list'); tasksArray.forEach(task => { const [name, callback] = task; const $div = document.createElement('div'); $div.className = 'div'; let $button = document.createElement('button'); $button.textContent = 'Запустить'; $button.className = 'button'; $button.onclick = callback; $div.appendChild($button); const $li = document.createElement('li'); $li.className = 'li'; $li.textContent = name; $div.appendChild($li); $list.appendChild($div); });