// For Table // Оформите задание For Multiply Table как функцию, которая принимает любой массив с массивами, а возвращает // строку HTML с тэгом и всякими tr и td. for_table: { const arr = [ [0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12], [0, 4, 8, 12, 16]]; const forTable = (arr) => { let str = "
"; for (let index of arr.keys()) { if (index % 2 == 0) { str += ""; } else { str += ""; } for (let number of arr[index]) { str += ``; } str += ""; } str += "
${number}
"; return str; } document.write(forTable(arr)); } // Form // Оформите задание Form как функцию, которая принимает любой объект как параметр и создает форму на экране. form: { const car = { "Name": "chevrolet chevelle malibu", "Cylinders": 8, "Displacement": 307, "Horsepower": 130, "Weight_in_lbs": 3504, "Origin": "USA", "in_production": false } const form = (obj) => { let string = "
"; for (let value of Object.keys(car)) { let type; if (typeof (car[value]) == 'number') { type = 'number'; } else if (typeof (car[value]) == 'string') { type = 'text'; } else if (typeof (car[value]) == 'boolean') { type = 'checkbox'; } string += ``; } string += "
"; document.write(string); } form(car); } // Table // Оформите задание Table как функцию, которая принимает следующие параметры: // любой массив объектов для отображения // поле, по которому сортировать // порядок сортировки (убывание/возрастание) // Перед отображением: // скопируйте исходный массив, что бы сортировка не изменила оригинал; // отсортируйте с помощью функции из предыдущего задания // Отображение возьмите из задания Table table: { const persons = [ { name: 'Мария', fatherName: 'Ивановна', surname: 'Иванова', sex: 'female' }, { name: 'Николай', fatherName: 'Иванович', surname: 'Иванов', age: 15 }, { name: 'Петр', fatherName: 'Иванович', surname: 'Иванов', married: true }, ] const byField = (arr, fieldName, isAscending) => { let objSort = (a, b) => { if (a[fieldName] > b[fieldName]) { return isAscending || isAscending == undefined ? 1 : -1; } else if (a[fieldName] < b[fieldName]) { return isAscending || isAscending == undefined ? -1 : 1; } else { return 0; } } let sortedArr = arr.slice().sort(objSort); return sortedArr; } const table = (arr, fieldName, isAscending) => { let sortedArr = byField(arr, fieldName, isAscending); let ColumnArr = []; for (let item of sortedArr) { for (let key of Object.keys(item)) { if (!ColumnArr.includes(key)) { ColumnArr.push(key); } } } let str = ""; for (ColumnName of ColumnArr) { str += ``; } str += ""; for (let item of sortedArr) { str += ""; for (let ColumnName of ColumnArr) { str += ``; } str += ""; } str += "
${ColumnName}
${item[ColumnName] || ''}
" document.write(str); } table(persons, "name", false); }