अब मैं javascript
स्ट्रिंग
में सॉर्टिंग का उपयोग कर रहा हूं LocaleCompare
और मेरे डेटा में कई null
मान भी होंगे
और स्ट्रिंग
और शून्य
मूल्य की तुलना करते समय मुझे localeCompare
के साथ एक अजीब व्यवहार मिला। जब स्ट्रिंग मान की शुरुआत से a / A से n / n
तक काम करता है, तो यह नीचे ठीक काम कर रहा है।
"n" .localecompare (null) // return -1; "एन" .लोकैम्परे (रिक्त) // वापसी -1;
लेकिन अगर मैं शून्य मान की o / o से z / z
के साथ तुलना करता है, तो यह 1
"o" .localeCompare (शून्य) // वापसी 1; "ओ" .localeCompare (रिक्त) // वापसी 1;
मुझे पता है कि लोकेल कॉम्परे
काम यूनिकोड
की तुलना के साथ करता है, लेकिन इसके बाद के व्यवहार में ऐसा क्यों होता है?
localeCompare
स्ट्रिंग्स की तुलना करता है, क्योंकि इस तरह से कुछ भी पास होकर स्ट्रिंग में परिवर्तित हो जाएगा,
"n" .localeCompare ("null") // return -1 से एक ही परिणाम प्राप्त करें; "ओ" .localeCompare ("null") // वापसी 1;
क्योंकि
लोकेल कॉम्परे () विधि एक संख्या इंगित करती है जो कि संदर्भ स्ट्रिंग से पहले या बाद में आता है < / Strong> या सॉर्ट क्रम में दिए गए स्ट्रिंग के समान है।
जिसका अर्थ है
"null" .localeCompare ("रिक्त")
-> 0
वापस लौटाएगा क्योंकि यह वही स्ट्रिंग है "n" .localeCompare ("null") -> वापस आएगा -1
जैसा कि इससे पहले आता है null
"o" .localecompare ("null")
-> वापस 1
जैसा कि यह null
No comments:
Post a Comment