/*while confirm Сделайте цикл с confirm, который продолжается по Отмена и заканчивается по ОК.*/ { let i = 0 while (!confirm()) { alert(i++) } } /*array fill Создайте пустой массив и добавляйте в него элементы, пока пользователь не нажмет Отмена в очередном prompt. Используйте push для удобства: push*/ { const arr = [] let i = 0 while (prompt('добавить в массив?') !== null) { arr.push(i++) alert(arr) } } /*array fill nopush Сделайте предыдущее задание, не используя push, а обращаясь к элементам по индексу.*/ { const arr = [] let i = 0 while (prompt('добавить в массив?') !== null) { arr[i] = i * 10 i++ alert(arr) } } /*infinite probability Создайте бесконечный цикл, который прерывается с помощью конструкции break, когда Math.random() > 0.9. Код должен подсчитывать количество итераций и вывести это число с помощью alert.*/ { let i = 0 while (true) { i++ if (Math.random() > 0.9) { break } } alert(i) } /*empty loop Сделайте цикл с prompt, который прерывается по нажатию OK и продолжается по нажатию "Отмена" c пустым телом цикла.*/ { while (prompt('отмена = продолжить') === null) { } } /*progression sum Подсчитать сумму арифметической прогрессии от 1 до N c шагом 3 (1,4,7....) используя цикл for. Метод Гаусса не применять, наоборот, сделать максимально наивное решение.*/ { const n = +prompt('задайте число N арифметической прогрессии от 1 до N c шагом 3') let memberN = 1 let sum = memberN for (let i = 1; i < n; i++) { memberN += 3 sum += memberN } console.log(sum) } //или { const n = +prompt('задайте число N арифметической прогрессии от 1 до N c шагом 3') let sum = 0 for (let i = 0; i < n; i++) { sum += i * 3 + 1 } } /*chess one line Сформировать строку " # # # # # " с помощью цикла for. Длина строки может быть четной и нечетной, и указывается в одном месте в коде.*/ { const evenOrOdd = prompt('1 если нечетное, 2 если чётное') let str = '' for (i = 0; i < 6; i++) { str += ' ' if (i === 6 - 1 && evenOrOdd === '1') break str += '#' } console.log(str) } /*numbers Сформировать строку c помощью вложенных циклов. Для перевода строки используйте \n. 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789*/ { let str = '' for (n = 0; n <= 9; n++) { for (i = 0; i <= 9; i++) { str += i } str += '\n' } console.log(str) } /*chess Сформируйте строку с шахматной доской из вложенных циклов. Для перевода строки используйте \n. Код должен поддерживать легкое изменение размеров доски. .#.#.#.#.#.# #.#.#.#.#.#. .#.#.#.#.#.# #.#.#.#.#.#. .#.#.#.#.#.# #.#.#.#.#.#. .#.#.#.#.#.# #.#.#.#.#.#. .#.#.#.#.#.# #.#.#.#.#.#.*/ { const height = 10 const width = 10 let str = '' for (n = 0; n < height; n++) { for (i = 0; i < width; i++) { if (n % 2) { str += '#.' } else { str += '.#' } } str += '\n' } console.log(str) } /*cubes Сформируйте массив из N элементов, содержащий в себе кубы индексов, т. е: [0,1,8,27,64...]*/ { let n = 10 let arr = [] for(i=0; i<10; i++){ arr.push(i**3) } console.log(arr) } /*multiply table C помощью вложенного цикла сформируйте массив массивов "таблица умножения". Для инициализации вложенных массивов используйте arr[i] = [] //в i-тый элемент массива заносится новый пустой массив arr[5][6] должен быть равен, соответственно, 30, arr[7][2] == 14 и так далее.*/ { let arr = [] for(n = 0; n < 10; n++){ arr[n] = [] for(i = 0; i < 10; i++){ arr[n][i] = n * i } } console.log(arr) } /*read array of objects Напишите функцию readArrayOfObjects, которая циклически добавляет в массив объекты, которые ввел пользователь. Пользователь вводит ключи и значения (их в каждом объекте может быть любое количество), используя prompt. Когда пользователь нажимает "Отмена" в окне prompt, ввод объекта заканчивается и объект добавляется в массив. Перед вводом следующего объекта пользователю задается вопрос (используя confirm), хочет ли он продолжить это мучение ввод объектов. При утвердительном ответе, опять работает ввод любюго количества ключей для создания нового объекта Функция должна возвращать созданный массив с объектами.*/ { const readArrayOfObjects = () => { let arr = [] while( confirm('добавить новій обьект?') ){ const obj = {} let key while ( (key = prompt('введите ключ')) !== null){ obj[key] = prompt('введите значение ключа "' + key + '"') } arr.push(obj) } return arr } readArrayOfObjects() } /*ромбик Сформировать следующую строку - ромбик: .....#..... ....###.... ...#####... ..#######.. .#########. ########### .#########. ..#######.. ...#####... ....###.... .....#.....*/ { const height = 10 const sing = "#" const dot = "." let str = "" for (i = 0 ; i < height; i++){ str += dot.repeat(height-i-1) str += sing.repeat(i*2 + 1) str += dot.repeat(height-i-1) str += '\n' } for (i = height-1; i > 0; i--){ str += dot.repeat(height-i) str += sing.repeat(i*2 - 1) str += dot.repeat(height-i) str += '\n' } console.log(str) } /*DOM: multiply table Сделать таблицу умножения, используя DOM createElement и innerText. Создайте таблицу, вложенные строки и ячейки в циклах. Должно получится что-то вроде этого:*/ { let table = document.createElement('table') let tr1 = document.createElement('tr') table.append(tr1) tr1.innerHTML = '