Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (() => {
- const tbody = [...document.querySelector("table").querySelectorAll("tr")]
- .map(tr =>
- [...tr.querySelectorAll("td")]
- .map(td => (
- td.querySelector("img") ?
- td.querySelector("a").href :
- td.textContent)
- )
- );
- const thead = tbody.shift();
- const data = tbody.map(td =>
- td.reduce(
- (prev, curVal, curIdx) => Object.assign(prev, { [thead[curIdx]]: curVal }),
- {}
- )
- );
- const pokemons = data.reduce((prev, cur) => Object.assign(prev, { [cur['Pic']]: cur['Pokémon'] }), { '-': null });
- const convertedData = data.map(datum => Object.assign(datum, {
- 'Evolves From': pokemons[datum['Evolves From']],
- 'Evolves Into': pokemons[datum['Evolves Into']],
- }, {})).map(datum => (
- delete datum['Pic'],
- datum['Candy Required'] = datum['Candy Required'] === '-' ? null : Number(datum['Candy Required']),
- datum['Type 1'] = /[^\/]+(?=-type-pokemon.html)/.exec(datum['Type 1']),
- datum['Type 1'] = datum['Type 1'] && datum['Type 1'][0],
- datum['Type 2'] = /[^\/]+(?=-type-pokemon.html)/.exec(datum['Type 2']),
- datum['Type 2'] = datum['Type 2'] && datum['Type 2'][0],
- datum
- ));
- console.log(JSON.stringify(convertedData));
- })()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement