Skip to content

Instantly share code, notes, and snippets.

@danazkari
Created June 11, 2022 14:03
Show Gist options
  • Save danazkari/5918e4bf2c989f5185f0b8f6856757b5 to your computer and use it in GitHub Desktop.
Save danazkari/5918e4bf2c989f5185f0b8f6856757b5 to your computer and use it in GitHub Desktop.
Bank USD/CRC exchanges mapping to JSON
const getHeaders = (tableRow) =>
Array
.from(tableRow.querySelectorAll('td'))
.map(header => header.innerText);
const getTableRows = (tableElement) =>
Array
.from(
tableElement
.querySelectorAll('tr')
);
const getBankDataFromRow = (headers, row) =>
headers
.reduce((acc = {}, header, index) => ({
...acc,
[header]: row[index].innerText
}), {});
const main = (tableElement) => {
const tableRows = getTableRows(tableElement);
const headers = getHeaders(tableRows.shift());
return tableRows
// Extract all columns from the row
.map(row => Array.from(row.querySelectorAll('td')))
// Map each header to each column into an object
.map(row => getBankDataFromRow(headers, row));
};
const banksTable = document.querySelector('#DG');
const jsonTable = main(banksTable);
console.log(jsonTable);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment