2013-06-06 7 views
6

Esiste uno standard definito come sarebbe essere paragonato JavaScript, sulla console Chrome ottengo questoCome vengono confrontati gli array Javascript?

[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 

che è altamente unintutive, e non posso nemmeno dare un senso quale logica viene applicata, e guardano in modo ripetibile non sembra basato su object id (ref) etc, quindi c'è qualche documentazione per questo?

+1

Beh, forse le specifiche ECMAScript aiuteranno: http://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5 – Stasik

+4

Confronto tra stringhe. – NINCOMPOOP

+0

chiama implicitamente toString e confronta alfabeticamente? –

risposta

4

Gli array JavaScript vengono convertiti in stringhe e le stringhe vengono quindi confrontate. Così.

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

stringhe vengono confrontate lessicografico, in modo da "5,0,0" è più grande di "10,0,0".

1

Qualcosa del genere può aiutare,

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

Saluti :).

+0

Perché questo dovrebbe aiutarlo? –

+0

Da questo possiamo immediatamente confrontare due array come String. –