|
@@ -0,0 +1,55 @@
|
|
|
+<header>
|
|
|
+ <h1>Currency Table</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;
|
|
|
+ }
|
|
|
+
|
|
|
+ const createCurrencyTable = () => {
|
|
|
+ fetch(`https://open.er-api.com/v6/latest/USD`)
|
|
|
+ .then(response => response.json())
|
|
|
+ .then(data => {
|
|
|
+ const name = 0;
|
|
|
+ const value = 1;
|
|
|
+ arr = Object.entries(data.rates);
|
|
|
+ let arr2 = [];
|
|
|
+ // первичная обработка запроса к серверу
|
|
|
+
|
|
|
+ arr2[0] = []; // открываем массив строки с названиями валют
|
|
|
+ arr2[0][0] = '';
|
|
|
+ for (let i = 0; i < arr.length; i++)
|
|
|
+ arr2[0][i + 1] = arr[i][name];// заполнение оглавления со смещением на позицию
|
|
|
+
|
|
|
+ for (let i = 0; i < arr.length; i++) {
|
|
|
+ arr2[i + 1] = [];
|
|
|
+ arr2[i + 1][0] = arr[i][name];
|
|
|
+ currRate1 = arr[i][value]; // заполнение значащих строк из массива пар (имя и кросс)
|
|
|
+
|
|
|
+ for (let j = 0; j < arr.length; j++) {
|
|
|
+ currRate2 = arr[j][value];
|
|
|
+ crossCurrRate = currRate2 / currRate1;
|
|
|
+ arr2[i + 1][j + 1] = crossCurrRate;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ document.write(toHtmlTable(arr2));
|
|
|
+ });
|
|
|
+ }
|
|
|
+ createCurrencyTable();
|
|
|
+
|
|
|
+
|
|
|
+ </script>
|
|
|
+
|
|
|
+</body>
|