<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>