//3 persons
let a = {
name: "Petro",
surname: "Petrov",
}
let b = {
name: "Ivan",
surname: "Ivanov",
}
let c = {
name: "Nikita",
surname: "Nikitin",
}
//different fields
a.age = 21;
b.sex = "male";
c.fathername = "Ivanovi4"
//fields check
let optionalField = ["age", "sex", "fathername"];
let userChoise = prompt("Выберите массив (a, b, c)");
if (userChoise === "a") {
for (let i of optionalField) {
if (i in a) {
alert("Необязательное поле в массиве a: " + i);
}
}
} else if (userChoise === "b") {
for (let i of optionalField) {
if (i in b) {
alert("Необязательное поле в массиве b: " + i);
}
}
} else if (userChoise === "c") {
for (let i of optionalField) {
if (i in c) {
alert("Необязательное поле в массиве c: " + i);
}
}
} else {
alert("Неправильный ввод")
}
//array of persons
let persons = [a, b, c];
let d = { name: "Katya", surname: "Popova" };
persons[persons.length] = d;
//loop of persons
for (let i in persons) {
console.log(persons[i]);
}
//loop of name and surname
for (let i in persons) {
console.log(persons[i]["name"], persons[i]["surname"])
}
//loop of loop of values
for (let i in persons) {
for (let j in persons[i]) {
console.log(persons[i][j]);
}
}
//fullName
for (let i in persons) {
if (persons[i]["fathername"]) {
persons[i].fullName = persons[i]["name"] + persons[i]["fathername"] + persons[i]["surname"];
} else {
persons[i].fullName = persons[i]["name"] + persons[i]["surname"];
}
}
//serialize
JSON.stringify(persons);
//deserialize
JSON.parse("[{\"name\":\"Petro\",\"surname\":\"Petrov\",\"age\":21,\"fullName\":\"PetroPetrov\"},{\"name\":\"Ivan\",\"surname\":\"Ivanov\",\"sex\":\"male\",\"fullName\":\"IvanIvanov\"},{\"name\":\"Nikita\",\"surname\":\"Nikitin\",\"fathername\":\"Ivanovi4\",\"fullName\":\"NikitaIvanovi4Nikitin\"},{\"name\":\"Katya\",\"surname\":\"Popova\",\"fullName\":\"KatyaPopova\"}]")
//HTML
let str = "
";
str += `name | surname |
`;
for (let i in persons) {
str += `${persons[i]["name"]} | ${persons[i]["surname"]} |
`;
}
str += "
";
console.log(str);
document.write(str);
//HTML optional fields
let str2 = "";
str2 += `Name | Surname | Age | Sex | Fathername | FullName |
`;
for (let i in persons) {
str2 += `${persons[i]["name"]} | ${persons[i]["surname"]} | ${persons[i]["age"] || ""} | ${persons[i]["sex"] || ""} | ${persons[i]["fathername"] || ""} | ${persons[i]["fullName"]} |
`;
}
str2 += "
";
console.log(str2);
document.write(str2);
//HTML tr color
let str3 = "";
str3 += `Name | Surname | Age | Sex | Fathername | FullName |
`;
for (let i in persons) {
if (i % 2 === 0) {
str3 += "";
} else {
str3 += "
";
}
str3 += `${persons[i]["name"]} | ${persons[i]["surname"]} | ${persons[i]["age"] || ""} | ${persons[i]["sex"] || ""} | ${persons[i]["fathername"] || ""} | ${persons[i]["fullName"]} |
`;
}
str3 += "
";
console.log(str3);
document.write(str3);
//HTML th optional
let str4 = "";
let arrayOfKeys = [];
for (let i in persons) { //запись ключей со всех персон
arrayOfKeys[i] = Object.keys(persons[i]);
}
arrayOfKeys = [...(new Set(arrayOfKeys.toString().split(",")))]; //делаем простой массив и удаляем повтор.ключи
str4 += ""
for (let key in arrayOfKeys) {
str4 += `${arrayOfKeys[key]} | `
}
str4 += "
"
console.log(arrayOfKeys)
for (let i in persons) {
str4 += ""
for (let key of arrayOfKeys) {
if (persons[i][key] === undefined) {
str4 += " | "
} else {
str4 += `${persons[i][key]} | `
}
}
str4 += "
"
}
str4 += "
";
console.log(str4);
document.write(str4);
//Задание на синий пояс
var someTree = {
tagName: "table", //html tag
subTags: [ //вложенные тэги
{
tagName: "tr",
subTags: [
{
tagName: "td",
text: "some text",
},
{
tagName: "td",
text: "some text 2",
}
],
attrs:
{
class: "b"
},
},
{
tagName: "tr",
subTags: [
{
tagName: "td",
text: "some text",
}
],
attrs:
{
class: "a"
},
}
],
attrs:
{
border: 1,
class: "bb"
},
}
let tagAttrs = "";
let strSubTags = "";
let subTagsAttrs = "";
let subTagsAttrsInner = "";
for (let key in someTree.attrs) {
tagAttrs += key + "=" + someTree.attrs[key] + " ";
}
for (let i of someTree.subTags) {
for (let j in i.attrs) {
subTagsAttrs = j + "=" + i.attrs[j] + " ";
}
strSubTags += `<${i.tagName + " " + subTagsAttrs}>`
if ("subTags" in i) {
for (let k of i.subTags) {
for (let l in k.attrs) {
subTagsAttrsInner = l + "=" + k.attrs[l] + " ";
}
strSubTags += `<${k.tagName + " " + subTagsAttrsInner}>${k.text}${k.tagName}>`
}
}
strSubTags += `${i.tagName}>`
}
let str = `<${someTree.tagName + " " + tagAttrs}>${strSubTags}${someTree.tagName}>`;
console.log(str)
document.write(str);
//destruct array
let arr = [1, 2, 3, 4, 5, "a", "b", "c"];
let [odd1, even1, odd2, even2, odd3, ...array] = arr;
//destruct string
let arr2 = [1, "abc"];
let [number, [s1, s2, s3]] = arr2;
//destruct 2
let obj = {
name: 'Ivan',
surname: 'Petrov',
children: [{ name: 'Maria' }, { name: 'Nikolay' }]
}
let { children: [{ name: name1 }, { name: name2 }] } = obj;
//destruct 3
let arr3 = [1, 2, 3, 4, 5, 6, 7, 10];
let { length, 0: a, 1: b } = arr3;