Bläddra i källkod

HW08_continuis

GennadyBerg 2 år sedan
förälder
incheckning
59a017d63c
3 ändrade filer med 143 tillägg och 0 borttagningar
  1. 39 0
      js/08/hw08_12_!ArrayOfObj.html
  2. 86 0
      js/08/hw08_13_!Table.html
  3. 18 0
      js/08/hw08_14_!Divide.html

+ 39 - 0
js/08/hw08_12_!ArrayOfObj.html

@@ -0,0 +1,39 @@
+<header>
+    <h1>ArreyOfObject</h1>
+</header>
+
+<body>
+    <script>
+        const toHtmlTable = (arr) => {
+            let str = "<table>";
+            for (let arrEl of arr) {
+                str += "<tr>";
+                for (let val of arrEl) {
+                    str += `<td>${val}</td>`;
+                }
+                str += "</tr>";
+            }
+            str += "</table>";
+            return str;
+        }
+        var persons = [
+            { name: "Иван", age: 17 },
+            { name: "Мария", age: 35 },
+            { name: "Алексей", age: 73 },
+            { name: "Яков", age: 12 },
+        ]
+        /*a   b   comp<    asc     res
+        1   2   true    false   false
+        2   1   false   false   true
+        
+        1   2   true    true   true
+        2   1   false   true   false*/
+        const sort = (arr, name, asc = true) =>
+            arr.sort((a, b) => (a[name] < b[name]) == asc ? -1 : 1);
+        sort(persons, "age"); //сортирует по возрасту по возрастанию
+        document.write(toHtmlTable(persons.map(p => Object.entries(p))));
+        sort(persons, "name", false); //сортирует по имени по убыванию
+        document.write(toHtmlTable(persons.map(p => Object.entries(p))));
+    </script>
+
+</body>

+ 86 - 0
js/08/hw08_13_!Table.html

@@ -0,0 +1,86 @@
+<header>
+    <h1>Table</h1>
+</header>
+
+<body>
+    <script>
+
+        var arr = [
+            {
+                "Name": "chevrolet chevelle malibu",
+                "Cylinders": 8,
+                "Displacement": 307,
+                "Horsepower": 130,
+                "Weight_in_lbs": 3504,
+                "Origin": "USA"
+            },
+            {
+                "Name": "buick skylark 320",
+                "Miles_per_Gallon": 15,
+                "Cylinders": 8,
+                "Displacement": 350,
+                "Horsepower": 165,
+                "Weight_in_lbs": 3693,
+                "Acceleration": 11.5,
+                "Year": "1970-01-01",
+            },
+            {
+                "Miles_per_Gallon": 18,
+                "Cylinders": 8,
+                "Displacement": 318,
+                "Horsepower": 150,
+                "Weight_in_lbs": 3436,
+                "Year": "1970-01-01",
+                "Origin": "USA"
+            },
+            {
+                "Name": "amc rebel sst",
+                "Miles_per_Gallon": 16,
+                "Cylinders": 8,
+                "Displacement": 304,
+                "Horsepower": 150,
+                "Year": "1970-01-01",
+                "Origin": "USA"
+            },
+        ];
+        const sort = (arr, name, asc = true) =>
+            arr.sort((a, b) => ((a[name] || "") < (b[name] || "")) == asc ? -1 : 1); //предусматриваем пустой ключ для конкретного объекта
+
+        const copySorter = (arr, sortName, asc = true) => {
+            //const copy = {...person}
+            sortedArr = sort(
+                arr.map(obj => { return { ...obj }; }),
+                sortName,
+                asc);
+
+
+            names = Object
+                .entries(
+                    sortedArr.reduce(
+                        (prev, next) => {
+                            return { ...prev, ...next };
+                        }
+                    ))
+                .map(entry => entry[0]);
+            str = "<table>";
+            str += "<tr>" +
+                names
+                    .map(name => `<td>${name}</td>`)
+                    .join('') +
+                "</tr>";
+            str +=
+                sortedArr
+                    .map(obj =>
+                        `<tr>${names
+                            .map(name => `<td>${obj[name] || "-"}</td>`)
+                            .join('')
+                        }</tr>`)
+                    .join('');
+            str += "</table>";
+            return str;
+        }
+        document.write(copySorter(arr, "Displacement", true));
+
+    </script>
+
+</body>

+ 18 - 0
js/08/hw08_14_!Divide.html

@@ -0,0 +1,18 @@
+<header>
+    <h1>Divide</h1>
+</header>
+
+<body>
+    <input type='number' id="firstNumber" />
+    <input type='number' id="secondNumber" />
+    <div id="divisionResult">
+        текст в div
+    </div>
+
+    <script>
+        const calcResult = () =>             
+            divisionResult.innerHTML = Math.floor(firstNumber.value / secondNumber.value);
+        
+        firstNumber.oninput = secondNumber.oninput = calcResult
+    </script>
+</body>