function nullLast(ascending) {
return function (a, b) {
if (a === b) {
return 0;
}
else if (a === null) {
return 1;
}
else if (b === null) {
return -1;
}
else if (ascending) {
return a < b ? -1 : 1;
}
else {
return a < b ? 1 : -1;
}
};
}
const arr = ["php", "c++", null, "typescript", "c", null, "nodejs", null, "javascript"];
arr.sort(nullLast(true));
console.log(arr);
arr.sort(nullLast(false));
console.log(arr);
/*
run:
["c", "c++", "javascript", "nodejs", "php", "typescript", null, null, null]
["typescript", "php", "nodejs", "javascript", "c++", "c", null, null, null]
*/