Using `reduce` to remove extra iterations (#2122)

* Using `reduce` to not iterate so much

* Remove the Array.from as well
main
toastal 7 years ago committed by Elbert Alias
parent 3a19eeeb0d
commit 46b6b29755

@ -133,11 +133,17 @@ class Driver {
js
})
.then(() => {
const links = Array.from(browser.document.getElementsByTagName('a'))
.filter(link => link.protocol === 'http:' || link.protocol === 'https:')
.filter(link => link.hostname === this.origPageUrl.hostname)
.filter(link => extensions.test(link.pathname))
.map(link => { link.hash = ''; return url.parse(link.href) });
const links = Array.prototype.reduce.call(
browser.document.getElementsByTagName('a'),
(acc, link) => {
if (link.protocol.match(/https?:/) || link.hostname === this.origPageUrl.hostname || extensions.test(link.pathname)) {
link.hash = '';
acc.push(url.parse(link.href));
}
return acc;
},
[]
);
return resolve(links);
});