|
@@ -43,26 +43,44 @@
|
|
|
|
|
|
// fields check---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
|
|
|
-// let a = {
|
|
|
-// name: "Alexandra",
|
|
|
-// surname: "Olefirenko",
|
|
|
-// sex: "female",
|
|
|
-// age: 21,
|
|
|
-// };
|
|
|
+let a = {
|
|
|
+ name: "Alexandra",
|
|
|
+ surname: "Olefirenko",
|
|
|
+ sex: "female",
|
|
|
+ age: 21,
|
|
|
+};
|
|
|
|
|
|
-// let b = {
|
|
|
-// name: "Platon",
|
|
|
-// surname: "Plokhenko",
|
|
|
-// education: "Bachelor degree",
|
|
|
-// age: 18,
|
|
|
-// };
|
|
|
+let b = {
|
|
|
+ name: "Platon",
|
|
|
+ surname: "Plokhenko",
|
|
|
+ education: "Bachelor degree",
|
|
|
+ age: 18,
|
|
|
+};
|
|
|
|
|
|
-// let c = {
|
|
|
-// name: "Sofia",
|
|
|
-// surname: "Sternenko",
|
|
|
-// fathername: "Vyktoryvna",
|
|
|
-// age: 27,
|
|
|
-// };
|
|
|
+let c = {
|
|
|
+ name: "Sofia",
|
|
|
+ surname: "Sternenko",
|
|
|
+ fathername: "Vyktoryvna",
|
|
|
+ age: 27,
|
|
|
+};
|
|
|
+
|
|
|
+if (Object.keys(a).includes("age", "sex")) {
|
|
|
+ console.log(a.sex, a.age);
|
|
|
+} else {
|
|
|
+ console.log("Not here");
|
|
|
+}
|
|
|
+
|
|
|
+if (Object.keys(b).includes("age", "education")) {
|
|
|
+ console.log(b.sex, b.education);
|
|
|
+} else {
|
|
|
+ console.log("Not here");
|
|
|
+}
|
|
|
+
|
|
|
+if (Object.keys(c).includes("fathername", "age")) {
|
|
|
+ console.log(c.fathername, c.age);
|
|
|
+} else {
|
|
|
+ console.log("Not here");
|
|
|
+}
|
|
|
|
|
|
// array of persons---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
|
|
@@ -83,6 +101,7 @@ let persons = [
|
|
|
(c = {
|
|
|
name: "Sofia",
|
|
|
surname: "Sternenko",
|
|
|
+ fathername: "Vyktoryvna",
|
|
|
sex: "F",
|
|
|
age: 27,
|
|
|
region: "Kyiv",
|
|
@@ -106,11 +125,12 @@ for (let i = 0; i < persons.length; i++) {
|
|
|
for (key in persons[i]) {
|
|
|
}
|
|
|
console.log(
|
|
|
- "name " +
|
|
|
+ "name: " +
|
|
|
" " +
|
|
|
persons[i].name +
|
|
|
+ "," +
|
|
|
" " +
|
|
|
- "surname " +
|
|
|
+ "surname: " +
|
|
|
" " +
|
|
|
persons[i].surname
|
|
|
);
|
|
@@ -121,21 +141,39 @@ for (let i = 0; i < persons.length; i++) {
|
|
|
|
|
|
// loop of loop of values---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
|
|
|
+for (i = 0; i <= persons.length; i++) {
|
|
|
+ for (let key in persons[i]) {
|
|
|
+ console.log(key + ": " + persons[i][key]);
|
|
|
+ }
|
|
|
+}
|
|
|
// fullName---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
|
|
|
-// for (var i = 0; i < persons.length; i++) {
|
|
|
-// for (var key in persons[i]) {
|
|
|
-// persons[i].fullName = persons[i].fullName =
|
|
|
-// persons[i].name + " " + persons[i].surname;
|
|
|
-// }
|
|
|
-// }
|
|
|
+for (let i = 0; i <= persons.length; i++) {
|
|
|
+ for (let key in persons[i]) {
|
|
|
+ if ("fathername" in persons[i]) {
|
|
|
+ console.log(
|
|
|
+ (persons[i].fullName =
|
|
|
+ persons[i].surname +
|
|
|
+ " " +
|
|
|
+ persons[i].name +
|
|
|
+ " " +
|
|
|
+ persons[i].fathername)
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ console.log(
|
|
|
+ (persons[i].fullName = persons[i].surname + " " + persons[i].name)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
// serialize---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
|
|
|
-// JSON.stringify(persons);
|
|
|
+JSON.stringify(persons);
|
|
|
|
|
|
// deserialize---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
|
|
|
-// JSON.parse('{"name: Taras, surname: Shevchenko"}');
|
|
|
+let d = JSON.parse('{"name": "Taras", "surname": "Shevchenko"}');
|
|
|
+persons.push(d);
|
|
|
|
|
|
// HTML----------------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
document.write("</table>");
|
|
@@ -160,30 +198,173 @@ for (let i = 0; i < persons.length; i++) {
|
|
|
document.write("</table>");
|
|
|
|
|
|
// HTML optional fields---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
+{
|
|
|
+ let headers = persons
|
|
|
+ .reduce((a, b) => a.concat(Object.keys(b)), [])
|
|
|
+ .filter((v, i, s) => s.indexOf(v) === i);
|
|
|
+ str =
|
|
|
+ `<table style = "border: 1px solid black; border-collapse: collapse;"><tr>${headers
|
|
|
+ .map(
|
|
|
+ (e) =>
|
|
|
+ `<th style = "border: 1px solid black; border-collapse: collapse;">${e}</th>`
|
|
|
+ )
|
|
|
+ .join("\n")}</tr>` +
|
|
|
+ persons
|
|
|
+ .map(
|
|
|
+ (e) =>
|
|
|
+ `<tr>${headers
|
|
|
+ .map(
|
|
|
+ (e1) =>
|
|
|
+ `<td style = "border: 1px solid black; border-collapse: collapse;">${
|
|
|
+ e[e1] ? e[e1] : "-"
|
|
|
+ }</td>`
|
|
|
+ )
|
|
|
+ .join("\n")}</tr>`
|
|
|
+ )
|
|
|
+ .join("\n") +
|
|
|
+ `</table>`;
|
|
|
+
|
|
|
+ document.write(str);
|
|
|
+}
|
|
|
// HTML tr color---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
|
|
|
-document.write("<table>");
|
|
|
-document.write('<tr style="color: red;">');
|
|
|
+{
|
|
|
+ let headers = persons
|
|
|
+ .reduce((a, b) => a.concat(Object.keys(b)), [])
|
|
|
+ .filter((v, i, s) => s.indexOf(v) === i);
|
|
|
+ str =
|
|
|
+ `<table style = "border: 1px solid black; border-collapse: collapse;"><tr style = "background-color: #ffff00;" >${headers
|
|
|
+ .map(
|
|
|
+ (e) =>
|
|
|
+ `<th style = "border: 1px solid black; border-collapse: collapse;">${e}</th>`
|
|
|
+ )
|
|
|
+ .join("\n")}</tr>` +
|
|
|
+ persons
|
|
|
+ .map(
|
|
|
+ (e) =>
|
|
|
+ `<tr style = "background-color: lightgreen;">${headers
|
|
|
+ .map(
|
|
|
+ (e1) =>
|
|
|
+ `<td style = "border: 1px solid black; border-collapse: collapse;">${
|
|
|
+ e[e1] ? e[e1] : "-"
|
|
|
+ }</td>`
|
|
|
+ )
|
|
|
+ .join("\n")}</tr>`
|
|
|
+ )
|
|
|
+ .join("\n") +
|
|
|
+ `</table>`;
|
|
|
+
|
|
|
+ document.write(str);
|
|
|
+}
|
|
|
+// HTML th optional---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
+// Задание на синий пояс.---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
+// HTML constructor---------------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
+let body = {
|
|
|
+ tagName: "body",
|
|
|
+ subTags: [
|
|
|
+ {
|
|
|
+ tagName: "div",
|
|
|
+ subTags: [
|
|
|
+ {
|
|
|
+ tagName: "span",
|
|
|
+ text: "Enter a data please:",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tagName: "br",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tagName: "input",
|
|
|
+ attrs: {
|
|
|
+ type: "text",
|
|
|
+ id: "name",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tagName: "input",
|
|
|
+ attrs: {
|
|
|
+ type: "text",
|
|
|
+ id: "surname",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tagName: "div",
|
|
|
+ subTags: [
|
|
|
+ {
|
|
|
+ tagName: "button",
|
|
|
+ text: "OK",
|
|
|
+ attrs: {
|
|
|
+ id: "ok",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tagName: "button",
|
|
|
+ text: "cancel",
|
|
|
+ attrs: {
|
|
|
+ id: "cancel",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+};
|
|
|
|
|
|
-for (key in persons[0]) {
|
|
|
- document.write("<th>" + key + "</th>");
|
|
|
+function createElem(tagName, attrs, text) {
|
|
|
+ var elem = document.createElement(tagName);
|
|
|
+ if (attrs) for (var name in attrs) elem.setAttribute(name, attrs[name]);
|
|
|
+ if (text) elem.textContent = text;
|
|
|
+ return elem;
|
|
|
}
|
|
|
-document.write("</tr>");
|
|
|
-for (i = 0; i < persons.length; i++) {
|
|
|
- document.write("<tr >");
|
|
|
- for (value in persons[i]) {
|
|
|
- document.write("<td>" + persons[i][value] + "</td>");
|
|
|
- }
|
|
|
- document.write("</tr>");
|
|
|
+
|
|
|
+function walker(tree) {
|
|
|
+ var tagName = tree.tagName,
|
|
|
+ attrs = tree.attrs,
|
|
|
+ text = tree.text,
|
|
|
+ elem = createElem(tagName, attrs, text);
|
|
|
+ if (tree.subTags)
|
|
|
+ tree.subTags.forEach(function (el) {
|
|
|
+ el = walker(el);
|
|
|
+ elem.appendChild(el);
|
|
|
+ });
|
|
|
+ return elem;
|
|
|
}
|
|
|
-document.write("</table>");
|
|
|
+var table = walker(body);
|
|
|
+document.body.appendChild(table);
|
|
|
|
|
|
-// HTML th optional---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
-// Задание на синий пояс.---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
// destruct array---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
+{
|
|
|
+ let arr = [1, 2, 3, 4, 5, "a", "b", "c"];
|
|
|
+
|
|
|
+ let evenArray = [];
|
|
|
+ let oddArray = [];
|
|
|
+ let lettersFromArr = [];
|
|
|
+ for (let i = 0; i < arr.length; i++) {
|
|
|
+ if (typeof arr[i] === "number") {
|
|
|
+ if (arr[i] % 2 === 0) {
|
|
|
+ evenArray.push(arr[i]);
|
|
|
+ } else {
|
|
|
+ oddArray.push(arr[i]);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ lettersFromArr.push(arr[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ let [even1, even2] = evenArray;
|
|
|
+ let [odd1, odd2, odd3] = oddArray;
|
|
|
+}
|
|
|
|
|
|
// destruct string---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
let arr1 = [1, "abc"];
|
|
|
+
|
|
|
+let [number, [s1, s2, s3]] = arr1;
|
|
|
+
|
|
|
+console.log(number);
|
|
|
+console.log(s1);
|
|
|
+console.log(s2);
|
|
|
+console.log(s3);
|
|
|
+
|
|
|
// destruct 2---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
let obj = {
|
|
|
name: "Ivan",
|
|
@@ -191,6 +372,19 @@ let obj = {
|
|
|
children: [{ name: "Maria" }, { name: "Nikolay" }],
|
|
|
};
|
|
|
|
|
|
+let {
|
|
|
+ children: [{ name: name1 }, { name: name2 }],
|
|
|
+} = obj;
|
|
|
+
|
|
|
+console.log(name1);
|
|
|
+console.log(name2);
|
|
|
// destruct 3---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
-let arr = [1, 2, 3, 4, 5, 6, 7, 10];
|
|
|
-// Задание на черный пояс---------------------------------------------------------------------------------------------------------------------------------------------------;
|
|
|
+{
|
|
|
+ let arr = [1, 2, 3, 4, 5, 6, 7, 10];
|
|
|
+
|
|
|
+ let { 0: a, 1: b, length } = arr;
|
|
|
+
|
|
|
+ console.log(a);
|
|
|
+ console.log(b);
|
|
|
+ console.log(length);
|
|
|
+}
|