47 lines
No EOL
1,012 B
JavaScript
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(""));
|
|
} |