watchyourlan/internal/web/public/js/sort.js
2025-03-18 22:04:12 +07:00

47 lines
No EOL
1,012 B
JavaScript

let oldField = '';
let field = '';
let down = false;
function displayArrayData(someArray) {
document.getElementById('tBody').innerHTML = "";
let i = 0;
for (let item of someArray){
i = i + 1;
html = createHTML(item, i);
document.getElementById('tBody').insertAdjacentHTML('beforeend', html);
}
}
function sortByAny(someArray) {
if (field == 'IP') {
someArray.sort((a, b) => sortIP(a, b, down));
} else {
someArray.sort((a, b) => byField(a, b, field, down));
}
displayArrayData(someArray);
}
function byField(a, b, fieldName, down){
if (a[fieldName] > b[fieldName]) {
return down ? 1 : -1;
} else {
return !down ? 1 : -1;
}
}
function sortIP(a, b, down) {
const num1 = numIP(a);
const num2 = numIP(b);
if (down) {
return num1-num2;
} else {
return num2-num1;
}
}
function numIP(a) {
return Number(a.IP.split(".").map((num) => (`000${num}`).slice(-3) ).join(""));
}