2012-07-06 16 views
10

क्या यह हिस्सा "लर्निंग PHP, MySQL और जावास्क्रिप्ट द्वारा रॉबिन निक्सन" पुस्तक से गलत है?न्यूमेरिक सरणी सॉर्ट()

numbers = [7, 23, 6, 74]; 

numbers.sort(function(a,b){return a - b}); 

उत्पादन 6,7,23,74

है किताब का कहना है:

गुमनाम समारोह के अंदर प्रकार() एक शून्य से अधिक मान देता है, तो तरह मान लिया गया एकबी से पहले आता है।

तो तरह अंदर गुमनाम समारोह() वापसी शून्य से एक मूल्य कम, तरह एक से पहले आता है मान लिया गया है।

सॉर्ट इस क्रम को सरणी के सभी मानों में अपने ऑर्डर को निर्धारित करने के लिए चलाता है।

क्या यह गलत है? क्योंकि ....

a यहाँ 7
b यहाँ है 23

7 - 23 = -16 // एक संख्या शून्य से कम है। पुस्तक कहती है कि इसे बी से पहले आता है।

तो अंतिम आउटपुट होना चाहिए 74, 23, 7, 6

+1

नहीं, यह सही है: http://jsfiddle.net/cjD3v/ –

+4

आप जानते हैं, आप बस इसे कर सकते हैं: _try it out_। उपरोक्त jsfiddle – TheZ

+1

की तरह लेकिन पुस्तक से स्पष्टीकरण गलत है ?? –

उत्तर

5

ऐसा प्रतीत होता है कि यह गलत है। MDN से:

तुलनात्मक रूप से (ए, बी) 0 से कम है, बी से कम सूचकांक को क्रमबद्ध करें।

("लोअर सूचकांक" इस मामले में मतलब यह होगा कि एक ख से पहले आता है)

2

उत्पादन सही है, लेकिन विवरण नहीं है। यदि विधि < 0 लौटाती है, तो बी से पहले आता है।

संबंधित मुद्दे