// while confirm // Сделайте цикл с confirm, который продолжается по Отмена и заканчивается по ОК. { while (!confirm('Жми отмену!')) { alert('Опа, нежданчик! Тут магия зазеркалья') } } // array fill // Создайте пустой массив и добавляйте в него элементы, пока пользователь не нажмет Отмена в очередном prompt.Используйте push для удобства: push { const arr = [] let item while (item !== null) { item = prompt('введи что-то для добавления в массив') if (item !== null) { arr.push(item) } else break } console.log(arr) } // array fill nopush // Сделайте предыдущее задание, не используя push, а обращаясь к элементам по индексу. { const arr = [] let item, i = 0 while (item !== null) { item = prompt('введи что-то для добавления в массив') if (item !== null) { arr[i] = item } else break; i++ } console.log(arr) } // infinite probability // Создайте бесконечный цикл, который прерывается с помощью конструкции break, когда Math.random() > 0.9.Код должен подсчитывать количество итераций и вывести это число с помощью alert { let num = 0, i = 0 while (num <= 0.9) { num = Math.random() console.log(`${i + 1}:`, num) if (num > 0.9) { break } i++ } alert(`Всего было ${i + 1} итераций цикла`) } // empty loop // Сделайте цикл с prompt, который прерывается по нажатию OK и продолжается по нажатию "Отмена" c пустым телом цикла. { while (prompt('Жми') === null) { } } // progression sum // Подсчитать сумму арифметической прогрессии от 1 до N c шагом 3(1, 4, 7....) используя цикл for.Метод Гаусса не применять, наоборот, сделать максимально наивное решение. { const arr = [] const length = +prompt('Введите количество членов арифметической прогрессии') for (let i = 0; i < length; i++) { arr.push(1 + i * 3) } console.log(arr.reduce((a, b) => a + b)) } // chess one line // Сформировать строку " # # # # # " с помощью цикла for.Длина строки может быть четной и нечетной, и указывается в одном месте в коде. { const length = +prompt('Введите длину строки') let str = '' for (i = 0; i < length; i++) { str += (i % 2 ? '#' : ' ') } console.log(str) } // numbers // Сформировать строку c помощью вложенных циклов.Для перевода строки используйте \n. { let str = '' for (let i = 0; i < 10; i++) { for (let j = 0; j < 10; j++) { str += j; } str += '\n' } console.log(str); } // chess // Сформируйте строку с шахматной доской из вложенных циклов.Для перевода строки используйте \n.Код должен поддерживать легкое изменение размеров доски. { [row, column] = ['Введите количество строк в таблице', 'Введите количество столбцов в таблице'].map(prompt) let str = '' for (let i = 0; i < +row; i++) { for (let j = 0; j < +column; j++) { i % 2 ? str += (j % 2 ? '.' : '#') : str += (j % 2 ? '#' : '.') } str += '\n' } console.log(str) } // cubes // Сформируйте массив из N элементов, содержащий в себе кубы индексов, т.е: [0, 1, 8, 27, 64...] { const arr = [] const length = +prompt('Введите длинну массива') for (let i = 0; i < length; i++) { arr.push(i ** 3) } console.log(arr) } // multiply table // C помощью вложенного цикла сформируйте массив массивов "таблица умножения". Для инициализации вложенных массивов используйте: arr[i] = [] { const length = +prompt('Введите размер стороны таблицы Пифагора') let arr = [] for (let i = 0; i < length; i++) { arr[i] = [] for (let j = 0; j < length; j++) { arr[i].push(i * j) } arr.push(arr[i]) } console.log(arr) console.log(arr[5][6] == 30) console.log(arr[7][2] == 14) } // read array of objects // Напишите функцию readArrayOfObjects, которая циклически добавляет в массив объекты, которые ввел пользователь.Пользователь вводит ключи и значения(их в каждом объекте может быть любое количество), используя prompt.Когда пользователь нажимает "Отмена" в окне prompt, ввод объекта заканчивается и объект добавляется в массив.Перед вводом следующего объекта пользователю задается вопрос(используя confirm), хочет ли он продолжить это мучение ввод объектов.При утвердительном ответе, опять работает ввод любюго количества ключей для создания нового объекта // Функция должна возвращать созданный массив с объектами. { let readArrayOfObjects = () => { const arr = [] do { const obj = {} for (let key, value; ; obj[key] = value) { key = prompt('Введите ключ для объекта') if (key === null) { break } value = prompt('Введите значение ключа объекта') if (value === null) { break } } arr.push(obj) } while (confirm('Продолжаем ввод объектов?')) return arr } readArrayOfObjects() } // ромбик // Сформировать следующую строку - ромбик: { const length = prompt('Введите любое нечетное число') let str = '' for (let i = 0; i < length; i++) { for (let j = 0; j < length; j++) { if (i < length / 2) { !(j < (Math.floor(length / 2) - i) || j > (Math.floor(length / 2) + i)) ? str += '#' : str += '.' } else { !(j < (i - Math.floor(length / 2)) || j > length - (i - Math.floor(length / 2) + 1)) ? str += '#' : str += '.' } } str += '\n' } console.log(str) } // DOM: multiply table + highlight cell + Highlight cross // Сделать таблицу умножения, используя DOM createElement и innerText.Создайте таблицу, вложенные строки и ячейки в циклах.Должно получится что - то вроде этого: // Подсветить ячейку, над которой находится курсор мыши.Используйте события mouseover и mouseout, и style.backgroundColor для подсветки.Для того, что бы подсветить правильную ячейку, добавьте обработчики событий во вложенный цикл, и используйте в них ту переменную, которая хранит < td >.В таком случае замыкания вам помогут. // Подсветить строку и столбец, в которой находится подсвеченная ячейка.Если у вас обработчики событий объявлены во вложенном цикле, то вы можете пользоваться счетчиками цикла(обычно i и j) и другими переменными, например переменной, содержащей в себе DOM - элемент строки. { const length = +prompt('Введите размер стороны таблицы Пифагора') // создаем див-родитель для таблицы const div = document.createElement('div') document.body.append(div) // создаем тег table const multiplyTable = document.createElement('table') div.append(multiplyTable) // создаем тело таблицы for (let i = 1; i < length + 1; i++) { const row = document.createElement('tr') multiplyTable.append(row) for (let j = 1; j < length + 1; j++) { const col = document.createElement('td') col.style.cssText = ` border: 1px solid grey; min-width: 1.3em; text-align: center; ` row.append(col) col.innerText = `${i * j}` // подсветка строки col.addEventListener('mouseover', () => multiplyTable.rows[i - 1].style.backgroundColor = '#00FFFF') col.addEventListener('mouseout', () => multiplyTable.rows[i - 1].style.backgroundColor = 'transparent') // подсвета столбца col.addEventListener('mouseover', () => { for (let k = 1; k < length + 1; k++) { multiplyTable.rows[k - 1].cells[j - 1].style.backgroundColor = "#00FFFF" // console.log(multiplyTable.rows[k - 0]) } }) col.addEventListener('mouseout', () => { for (let k = 1; k < length + 1; k++) { multiplyTable.rows[k - 1].cells[j - 1].style.backgroundColor = "transparent" } }) // подсветка элемента таблицы col.onmouseover = () => col.style.backgroundColor = '#FFFF00' col.addEventListener('mouseout', () => col.style.backgroundColor = 'transparent') } } }