2013-06-06 9 views
6

कैसे जावास्क्रिप्ट तुलना में किया जाएगा, क्रोम कंसोल पर मैं इसजावास्क्रिप्ट सरणी की तुलना कैसे की जाती है?

[10,0,0] > [1,0,0] 
true 
[10,0,0] > [5,0,0] 
false 
[5, 0, 0, 0] < [10, 0, 0, 0] //repeatable 
false 

[10,0,0,0] > [9,0,0,0] 
false 
[11,0,0,0] > [10,0,0,0] 
true 

कौन सा अत्यधिक unintutive है मिलता है, और मैं यह भी समझ रहा है क्या तर्क लागू किया जा रहा नहीं कर सकते हैं कि वहाँ एक मानक परिभाषित किया गया है, और वे इसलिए दोहराने योग्य देखो ऑब्जेक्ट आईडी (रेफरी) आदि के आधार पर नहीं दिखता है, तो क्या इसके लिए कोई दस्तावेज है?

+1

ठीक है, शायद ईसीएमएस्क्रिप्ट चश्मा मदद करेंगे: http://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5 – Stasik

+4

स्ट्रिंग तुलना। – NINCOMPOOP

+0

क्या यह स्पष्ट रूप से स्ट्रिंग को कॉल कर रहा है और वर्णानुक्रम की तुलना कर रहा है? –

उत्तर

4

जावास्क्रिप्ट सरणी तारों में परिवर्तित हो जाते हैं और तारों की तुलना तब की जाती है। इसलिए।

[10,0,0].toString() => "10,0,0" 
[5,0,0].toString() => "5,0,0" 

स्ट्रिंग्स की तुलना लेक्सिकोोग्राफिक रूप से की जाती है, इसलिए "5,0,0" "10,0,0" से बड़ा है।

1

कुछ इस आप मदद कर सकते हैं की तरह,

JSON.stringify([2,2,2]) === JSON.stringify([2,2,2]); //true 

चीयर्स :)।

+0

यह उसकी मदद क्यों करेगा? –

+0

इससे हम सीधे स्ट्रिंग के रूप में दो सरणी की तुलना कर सकते हैं। –

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