hw08_10_!CurrencyTable.html 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <header>
  2. <h1>Currency Table</h1>
  3. </header>
  4. <body>
  5. <script>
  6. const toHtmlTable = (arr) => {
  7. let str = "<table>";
  8. for (let arrEl of arr) {
  9. str += "<tr>";
  10. for (let val of arrEl) {
  11. str += `<td>${val}</td>`;
  12. }
  13. str += "</tr>";
  14. }
  15. str += "</table>";
  16. return str;
  17. }
  18. const createCurrencyTable = () => {
  19. fetch(`https://open.er-api.com/v6/latest/USD`)
  20. .then(response => response.json())
  21. .then(data => {
  22. const name = 0;
  23. const value = 1;
  24. arr = Object.entries(data.rates);
  25. let arr2 = [];
  26. // первичная обработка запроса к серверу
  27. arr2[0] = []; // открываем массив строки с названиями валют
  28. arr2[0][0] = '';
  29. for (let i = 0; i < arr.length; i++)
  30. arr2[0][i + 1] = arr[i][name];// заполнение оглавления со смещением на позицию
  31. for (let i = 0; i < arr.length; i++) {
  32. arr2[i + 1] = [];
  33. arr2[i + 1][0] = arr[i][name];
  34. currRate1 = arr[i][value]; // заполнение значащих строк из массива пар (имя и кросс)
  35. for (let j = 0; j < arr.length; j++) {
  36. currRate2 = arr[j][value];
  37. crossCurrRate = currRate2 / currRate1;
  38. arr2[i + 1][j + 1] = crossCurrRate;
  39. }
  40. }
  41. document.write(toHtmlTable(arr2));
  42. });
  43. }
  44. createCurrencyTable();
  45. </script>
  46. </body>