123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- // For Table
- // Оформите задание For Multiply Table как функцию, которая принимает любой массив с массивами, а возвращает
- // строку HTML с тэгом <table> и всякими 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 = "<table style = 'border-collapse: collapse; border: 1px solid; text-align: center; margin: 20px 0 20px;'>";
- for (let index of arr.keys()) {
- if (index % 2 == 0) {
- str += "<tr style='background-color: #babfc4;'>";
- } else {
- str += "<tr style='background-color: #fcb450;'>";
- }
- for (let number of arr[index]) {
- str += `<td style = 'border-collapse: collapse; border: 1px solid; width: 30px; height: 30px;'>${number}</td>`;
- }
- str += "</tr>";
- }
- str += "</table>";
- 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 = "<form style='display: flex; flex-direction: column;'>";
- 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 += `<label style='margin-bottom: 16px;'>
- ${value.slice(0, 1).toUpperCase() + value.slice(1).toLowerCase().replaceAll("_", " ")}
- <input type ="${type}" value="${car[value]}"/>
- </label>`;
- }
- string += "</form>";
- 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 = "<table style = 'border-collapse: collapse; border: 1px solid gray; text-align: center; margin-bottom: 20px'><tr>";
- for (ColumnName of ColumnArr) {
- str += `<th style = 'border-collapse: collapse; border: 1px solid gray; background-color: #d3d3d3; padding: 10px'>${ColumnName}</th>`;
- }
- str += "</tr>";
- for (let item of sortedArr) {
- str += "<tr>";
- for (let ColumnName of ColumnArr) {
- str += `<td style = 'border-collapse: collapse; border: 1px solid gray; padding: 10px'>${item[ColumnName] || ''}</td>`;
- }
- str += "</tr>";
- }
- str += "</table>"
- document.write(str);
- }
- table(persons, "name", false);
- }
|