// 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 += `${number} | `;
}
str += "
";
}
str += "
";
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 = "";
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 += `${ColumnName} | `;
}
str += "
";
for (let item of sortedArr) {
str += "";
for (let ColumnName of ColumnArr) {
str += `${item[ColumnName] || ''} | `;
}
str += "
";
}
str += "
"
document.write(str);
}
table(persons, "name", false);
}