Wednesday, 15 August 2012

arrays - javascript `localeCompare` return different values -


अब मैं 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