Đối tượng là các loại tham chiếu để bạn có thể chỉ sử dụng 2 hoặc 3 để so sánh 2 đối tượng. Một cách nhanh chóng để so sánh nếu 2 đối tượng có cùng giá trị khóa, là sử dụng 4. Một cách khác là sử dụng chức năng lodash 5 Show
# So sánh sâu thẳmYup, 2 cách cũng hoạt động cho các vật thể lồng sâu. # Tôi nên sử dụng cái nào?Điều đó phụ thuộc. Đối với 6, thứ tự quan trọng. Vì vậy, nếu cặp giá trị khóa được đặt hàng khác nhau trong hai đối tượng nhưng giống nhau, nó sẽ trả về sai. Trong khi nó không quan trọng trong lodash 5, nó sẽ trả về đúng khi cặp giá trị chính tồn tại.Đây là đề xuất của tôi. Đối với một giải pháp nhanh chóng và bẩn, tôi sẽ sử dụng 6. Nhưng đối với một giải pháp mạnh mẽ hơn bao gồm nhiều trường hợp cạnh kỳ lạ hơn, hãy sử dụng Lodash Way.# Es6 cách để so sánh 2 đối tượngĐây là một giải pháp được đề xuất bởi @mustafauzun0. Mặc dù vậy, rất ít điều cần lưu ý, nó đã giành được công việc với các đối tượng lồng nhau và thứ tự của các phím rất quan trọng. Ý tưởng đằng sau điều này tương tự như cách chuỗi. Nó bao phủ đối tượng thành một chuỗi và so sánh nếu các chuỗi là một kết quả phù hợp. Về cơ bản nó so sánh sự bình đẳng của hai chuỗi. Đó là lý do tại sao đơn đặt hàng quan trọng. Cảm ơn: @mustafauzun0 # Json.Stringify vs hiệu suất của LodashCole Turner: Đáng chú ý rằng các đối tượng không đảm bảo thứ tự sắp xếp và Stringify sẽ tốn nhiều hiệu suất hơn vì nó phải tuần tự hóa toàn bộ đối tượng trong khi Lodash có thể thoát ra sớm nếu tìm thấy một khóa không khớp. Điều này xuất hiện trong các cuộc phỏng vấn 🙂 Cảm ơn: @Coleturner BLNKDOTSPACE: Lodash nhanh hơn đáng kể. Bởi vì Lodash sẽ bỏ cuộc ngay khi nó đạt đến sự khác biệt đầu tiên, nhưng Stringify đi ngay cho đến khi kết thúc một cách không cần thiết. Nếu bạn có các mảng nhỏ thì không sao nhưng đối với các trường hợp sử dụng cá nhân của tôi với hơn 1000 sự kiện/sản phẩm trong danh sách, tôi sẽ không bao giờ sử dụng Stringify. Cảm ơn: @blnkdotspace # Tài nguyên
89 Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm. Cách đẹp nhất để so sánh một giá trị với các tùy chọn bội số là gì? Tôi biết có rất nhiều cách để làm điều này, nhưng tôi đang tìm kiếm gọn gàng nhất. Tôi hỏi bởi vì tôi hy vọng điều này là khả thi (nó không phải, rõ ràng là khi bạn nhìn vào nó):
Isherwood 54,6K15 Huy hiệu vàng107 Huy hiệu bạc147 Huy hiệu đồng15 gold badges107 silver badges147 bronze badges hỏi ngày 2 tháng 2 năm 2012 lúc 23:09Feb 2, 2012 at 23:09
Thelastshadowthelastshadowthelastshadow 3.2733 huy hiệu vàng34 Huy hiệu bạc35 Huy hiệu đồng3 gold badges34 silver badges35 bronze badges 3 Đừng cố gắng quá lén lút, đặc biệt là khi nó không cần thiết phải ảnh hưởng đến hiệu suất. Nếu bạn thực sự có cả đống so sánh để làm, chỉ cần định dạng nó một cách độc đáo.
Đã trả lời ngày 2 tháng 2 năm 2012 lúc 23:35Feb 2, 2012 at 23:35
5 Những gì tôi sử dụng để làm, là đặt nhiều giá trị đó vào một mảng như
Và sau đó, sử dụng indexof ()
vì sự xinh đẹp:
và cho các trình duyệt cũ hơn: (https://developer.mozilla.org/en/javascript/reference/global_objects/array/indexof)
Đã trả lời ngày 2 tháng 2 năm 2012 lúc 23:12Feb 2, 2012 at 23:12
7 Vì không có ai thêm giải pháp rõ ràng nhưng hoạt động tốt cho hai so sánh, tôi sẽ cung cấp nó:
Và, nếu bạn có rất nhiều giá trị (có lẽ hàng trăm hoặc hàng ngàn), thì tôi khuyên bạn nên tạo ra một bộ vì điều này tạo ra mã so sánh rất sạch và đơn giản và nó nhanh trong thời gian chạy:
Đối với Pre-ES6, bạn có thể nhận được một polyfill đã thiết lập trong đó có rất nhiều. Một được mô tả trong câu trả lời khác này. Đã trả lời ngày 2 tháng 2 năm 2012 lúc 23:18Feb 2, 2012 at 23:18
jfriend00jfriend00jfriend00 655K91 Huy hiệu vàng931 Huy hiệu bạc933 Huy hiệu Đồng91 gold badges931 silver badges933 bronze badges 4 Bạn có thể sử dụng một công tắc:
Đã trả lời ngày 2 tháng 2 năm 2012 lúc 23:12Feb 2, 2012 at 23:12
Vì không có ai thêm giải pháp rõ ràng nhưng hoạt động tốt cho hai so sánh, tôi sẽ cung cấp nó:Guffa Và, nếu bạn có rất nhiều giá trị (có lẽ hàng trăm hoặc hàng ngàn), thì tôi khuyên bạn nên tạo ra một bộ vì điều này tạo ra mã so sánh rất sạch và đơn giản và nó nhanh trong thời gian chạy:108 gold badges722 silver badges995 bronze badges 0 Đối với Pre-ES6, bạn có thể nhận được một polyfill đã thiết lập trong đó có rất nhiều. Một được mô tả trong câu trả lời khác này. Đã trả lời ngày 2 tháng 2 năm 2012 lúc 23:18
655K91 Huy hiệu vàng931 Huy hiệu bạc933 Huy hiệu ĐồngFeb 13, 2013 at 10:27
Bạn có thể sử dụng một công tắc:lucideer Guffaguffa24 silver badges31 bronze badges 1 674K108 Huy hiệu vàng722 Huy hiệu bạc995 Huy hiệu Đồng 0Chỉ dành cho những cú đá, vì câu hỏi và trả lời này dường như là về vi phân cú pháp, một sửa đổi nhỏ bé của gợi ý của André Alçada Padez:not work on IE < 9. .Jun 7, 2013 at 8:54
Đã trả lời ngày 13 tháng 2 năm 2013 lúc 10:27Ionică Bizău Lucideerlucideer82 gold badges274 silver badges456 bronze badges 2 3.79424 Huy hiệu bạc31 Huy hiệu đồng
David 17.4K4 Huy hiệu vàng42 Huy hiệu bạc57 Huy hiệu đồng4 gold badges42 silver badges57 bronze badges Đã trả lời ngày 2 tháng 2 năm 2012 lúc 23:21Feb 2, 2012 at 23:21
JamieseejamieseeJamieSee 12.4K2 Huy hiệu vàng30 Huy hiệu bạc47 Huy hiệu đồng2 gold badges30 silver badges47 bronze badges 5 Phương pháp chuyển đổi (như được đề cập bởi Guffa) thực sự hoạt động rất độc đáo. Tuy nhiên, các cài đặt cảnh báo mặc định trong hầu hết các lin sẽ cảnh báo bạn về việc sử dụng giảm. Đó là một trong những lý do chính khiến tôi sử dụng các công tắc, vì vậy tôi đã bỏ qua cảnh báo này khá nhiều, nhưng bạn nên lưu ý rằng việc sử dụng tính năng rơi của câu lệnh Switch có thể là khó khăn. Mặc dù vậy, trong những trường hợp như thế này - tôi sẽ đi cho nó.
Đã trả lời ngày 25 tháng 2 năm 2014 lúc 11:43Feb 25, 2014 at 11:43
NinjatoolninjatoolNinjaTool 531 Huy hiệu bạc5 Huy hiệu đồng1 silver badge5 bronze badges 0 Tôi thích hình thức kiểm tra chỉ mục với một mảng, nhưng hãy lưu ý, điều này không hoạt động trong tất cả các trình duyệt (vì Array.Prototype.indexof không có trong IEXPLORER cũ). Tuy nhiên, có một cách tương tự bằng cách sử dụng jQuery với hàm $ .Inarray (): 1Nó có thể tốt hơn, vì vậy bạn không nên kiểm tra nếu indexof tồn tại. Hãy cẩn thận với so sánh (không sử dụng == true/false), vì $ .inArray trả về chỉ mục của vị trí phù hợp nơi giá trị đã được tìm thấy và nếu chỉ mục là 0, nó sẽ sai khi nó thực sự tồn tại thành Mảng.
Đã trả lời ngày 25 tháng 3 năm 2015 lúc 9:56Mar 25, 2015 at 9:56
1 Làm thế nào để bạn so sánh mọi thứ trong JavaScript?JavaScript cung cấp ba hoạt động so sánh giá trị khác nhau: ===-Bình đẳng nghiêm ngặt (ba bằng)=== — strict equality (triple equals) == — loose equality (double equals) Object.is()
Là == và === giống nhau trong javascript?Sự khác biệt chính giữa toán tử == và === trong JavaScript là toán tử == thực hiện chuyển đổi loại của toán hạng trước khi so sánh, trong khi toán tử === so sánh các giá trị cũng như các loại dữ liệu của toán hạng.the == operator does the type conversion of the operands before comparison, whereas the === operator compares the values as well as the data types of the operands.
Làm cách nào để so sánh hai số trong JavaScript?JavaScript có hai toán tử khác nhau xác định xem các giá trị có bằng nhau hay không.Không nghiêm ngặt bằng toán tử (==) xác định xem hai giá trị có bằng nhau một cách hiệu quả bất kể loại dữ liệu của chúng không.Các toán tử tương đương với toán tử (===) xác định xem hai giá trị có giống hệt nhau trong cả loại dữ liệu và giá trị hay không.
Toán tử == trong JavaScript là gì?Toán tử bình đẳng (==) kiểm tra xem hai toán hạng của nó có bằng nhau hay không, trả về kết quả boolean.Không giống như toán tử bình đẳng nghiêm ngặt, nó cố gắng chuyển đổi và so sánh các toán hạng có các loại khác nhau.checks whether its two operands are equal, returning a Boolean result. Unlike the strict equality operator, it attempts to convert and compare operands that are of different types. |