Я хочу, чтобы отсортировать массив, содержащий неопределенные/утратившим число, так что неопределенные/нулевые значения всегда приходят первым:[] .sort игнорирует неопределенные значения?
function sorter(a, b) {
if (a == b) return 0;
if (a == undefined) return -1;
if (b == undefined) return 1;
return a - b;
}
Однако, когда массив содержит неопределенное значение оно становится последним элементом
[-1, 0, 1, undefined, 2, 3].sort(sorter); // [-1, 0, 1, 2, 3, undefined]
в то время как он получает правильно отсортирован, если значение равно нулю
[-1, 0, 1, null, 2, 3].sort(sorter); // [null, -1, 0, 1, 2, 3]
Что я делаю неправильно? Разве это не должно привести к точному порядку, так как null == undefined?
Это не одно и то же ... Ответ от mar10 очищает его - http://stackoverflow.com/questions/2559318/how-to-check-for-an-undefined-or-null-variable-in- Javascript – RicardoVallejo