Ich habe eine Reihe von Objekten, die unterJavascript Sortierung von Nullwerten in Betracht gezogen werden
let customerData = [{
id: 1,
name: 'cust1',
address: null
},
{
id: 2,
name: 'cust2',
address: 'test1'
},
{
id: 3,
name: 'cust3',
address: 'add2'
},
{
id: 4,
name: 'cust4',
address: 'test2'
},
{
id: 5,
name: 'cust5',
address: null
}
];
In ASC Nullwerte auch ähnlich dem ist/desc die Nullwerte werden immer am last.Can jemand sortiert bitte helfen Sie mir, die Null-Werte auch zu sortieren? Bewegen Sie entweder alle Null-Werte nach oben, wenn Sie asc/desc.
Wenn wir die Nullwerte durch Leerzeichen ersetzen, funktioniert die Sortierung wie erwartet. Aber wir können die Daten nicht in leer ändern, da die Null- und Leerwerte unterschiedlich behandelt werden.
Ich habe viele ähnliche Beiträge gesehen, aber alle von ihnen machen die Nullwerte, um unten wie die Links unten zu drücken.
How to sort an array with null values
Bitte nicht diese Frage, als Duplikat markiert, wie ich keine richtige Lösung gefunden.
Die Lösungen ich habe
versuchtdata.sort(function (item1, item2) {
------------------/////---not working------------------------------
if (item1[colBinding] === null && sort.direction === 'asc') return 1;
if (item2[colBinding] === null && sort.direction === 'asc') return 0;
if (item1[sort.colBinding] === null && sort.direction === 'desc') return 1; if (item2[sort.colBinding] === null && sort.direction === 'desc') return -1;
if (sort.direction === 'asc') return item1[sort.colBinding] > item2[sort.colBinding];
if (sort.direction === 'desc') return item1[sort.colBinding] < item2[sort.colBinding];
-------------------------------------------------------
----------------------//working to push null at the end
let currentData = item1[colBinding] === null ? '' : item1[sort.colBinding];
let nextData = item2[sort.colBinding] === null ? '' : item2[sort.colBinding];
if (currentData === nextData) { return -1 };
if (currentData < nextData) { return 0 };
if (currentData > nextData) { return 1 };
----------------------------------------------------------
---------------------/// not working-----------------------------------
var nullPosition = sort.direction === 'asc' ? 1 : -1;
if (item1[colBinding] === null) return nullPosition;
if (item2[colBinding] === null) return -nullPosition;
if (item1[colBinding] < item2[colBinding]) return -nullPosition;
if (item1[colBinding] > item2[colBinding]) return nullPosition;
return 0
------------------------------------------------------------------------------
});
Format Code –
Die Antwort, die Sie nicht unter Push verbunden ... Es hängt von der Sortierreihenfolge ... Und man kann es leicht bearbeiten, wenn nötig. Definitiv ein Duplikat ... – Salketer
Mögliches Duplikat von [Wie man ein Array mit Nullwerten sortiert] (https://stackoverflow.com/questions/33684937/how-to-sort-an-array-with-null-values) – Salketer