Сейчас я работаю в javascript
string
сортировки с использованием localeCompare
и мои данные будут содержать несколько null
значения тоже.Javascript `localeCompare` возвращают разные значения
А при каком-то значении string
ибыло обнаружено странное свидание: localeCompare
и null
. При сравнении строкового значения до начала с a/A to n/N
он работает нормально, как показано ниже.
"n".localeCompare(null) // return -1;
"N".localeCompare(null) // return -1;
Но после того, как если я сравнить нулевое значение с o/O to z/Z
возвращает 1
"o".localeCompare(null) // return 1;
"O".localeCompare(null) // return 1;
Я знаю, что localeCompare
работы с сравнением Unicode
но почему данное поведение происходит там какая-либо причина?
Спасибо за ответ. Вы имеете в виду, что 'null' преобразуется в строку при передаче в качестве аргумента в' localeCompare', и поэтому я должен обрабатывать его вне? – Madhu
'localeCompare' ** только ** сравнивает строки, поэтому да что-либо переданное ему будет рассматриваться как строка, а null не является строкой и не может сравниться с' n'. Как вы справляетесь с этим, зависит от того, что вы ожидаете при сравнении строк и «null»? – adeneo
Спасибо, объясняет много, я собираюсь отметить это как ответ. – Madhu