2013-06-06 30 views
6

Có một tiêu chuẩn được xác định như thế nào JavaScript sẽ được so sánh, trên Chrome console tôi có được điều nàyMảng Javascript được so sánh như thế nào?

[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 

Đó là đánh giá cao unintutive, và tôi thậm chí không thể có ý nghĩa gì logic đang được áp dụng, và họ trông lặp lại quá không nhìn dựa trên đối tượng id (ref) vv, vì vậy là có bất kỳ tài liệu hướng dẫn cho nó?

+1

Vâng, có thể thông số kỹ thuật ECMAScript sẽ giúp: http://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5 – Stasik

+4

So sánh chuỗi. – NINCOMPOOP

+0

Có phải nó ngầm gọi toString và so sánh theo thứ tự bảng chữ cái? –

Trả lời

4

Mảng JavaScript được chuyển thành chuỗi và sau đó các chuỗi được so sánh. Vì thế.

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

Chuỗi được so sánh theo từ điển, vì vậy "5,0,0" lớn hơn "10,0,0".

1

Something như thế này có thể giúp bạn,

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

Cheers :).

+0

Tại sao điều này giúp anh ta? –

+0

Bằng cách này, chúng ta có thể ngay lập tức so sánh hai mảng dưới dạng Chuỗi. –

Các vấn đề liên quan