function sortByExt(files) {
return files.map(fileName => {
const p = fileName.indexOf('.');
const name = +fileName.slice(0, p);
const ext = fileName.slice(p + 1);
return [fileName, name, ext];
}).sort(([, nameA, extA], [, nameB, extB]) => (extA < extB
? 1
: (extA > extB ? -1 : nameA - nameB)
)).map(([fileName]) => fileName);
}
Как я понимаю мне необходимо для работы скачать данный сайт локально (страницу)?
const elements = el.closest('.calc').querySelectorAll('.range__control');
const price = Array.prototype.reduce.call(
elements,
(acc, n) => acc * n.value,
1
);
// или
let price = 1;
for (const { value } of elements) {
price *= value;
}
// или
const price = eval(Array.from(elements, n => n.value).join('*'));
function sortByExt(files) {
function getFileInfo(val) {
const arr = val.split('.');
return {
ext: arr.pop(),
name: arr.join('.')
}
}
function compare(s1, s2) {
if (s1 < s2) {
return -1;
}
if (s1 > s2) {
return 1;
}
return 0;
}
return files.sort((a, b) => {
const {ext: aExt, name: aName} = getFileInfo(a);
const {ext: bExt, name: bName} = getFileInfo(b);
return compare(aExt, bExt) || compare(aName, bName);
});
}
new Highlight({
selector: '.block__cell'
})
btn.addEventListener('click', (event) => {
block.classList.contains('active') ? hide() : show();
});
class Select {
constructor({
selector,
label,
url,
onOpen,
onClose
}) {
this.container = document.querySelector(selector);
this.label = label;
this.url = url;
this._onOpen = onOpen;
this._onClose = onClose;
...
}
...
open() {
...
if (this._onOpen !== undefined) {
this._onOpen();
}
}
close() {
...
if (this._onClose !== undefined) {
this._onClose();
}
}
}