Hướng dẫn javascript if not equal to multiple values - javascript nếu không bằng nhiều giá trị

Hãy nghĩ về

if(!a && !b) {
  // is not a and is not b
}
9 (toán tử phủ định) là "không phải",
// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')
0 (toán tử Boolean-OR) là "hoặc" và
// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')
1 (boolean và toán tử) là "và". Xem các toán tử và người vận hành ưu tiên.

Thus:

if(!(a || b)) {
  // means neither a nor b
}

Tuy nhiên, sử dụng luật của De Morgan, nó có thể được viết là:

if(!a && !b) {
  // is not a and is not b
}

// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')
2 và
// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')
3 ở trên có thể là bất kỳ biểu thức nào (chẳng hạn như
// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')
4 hoặc bất cứ điều gì nó cần).

Một lần nữa, nếu

// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')
5 và
// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')
4, là các biểu thức, lưu ý sự mở rộng của mẫu thứ 1:

// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')

-4

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.
Learn more.

Đây là một câu hỏi cơ bản, nhưng tôi đã tự hỏi làm thế nào để làm một cái gì đó như:

Nếu

// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')
7 không bằng 1 hoặc 2 hoặc 3 thì
// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')
8

Chúng ta có thể làm điều đó như:

if (!(i==1&2&3)) { alert('yes')}

Thay vì:

if (!((i==1) || (i==2) || (i ==3) )) { alert('yes');}

Hướng dẫn javascript if not equal to multiple values - javascript nếu không bằng nhiều giá trị

Biffen

6.0896 Huy hiệu vàng30 Huy hiệu bạc34 Huy hiệu đồng6 gold badges30 silver badges34 bronze badges

Đã hỏi ngày 2 tháng 6 năm 2015 lúc 9:38Jun 2, 2015 at 9:38

Hướng dẫn javascript if not equal to multiple values - javascript nếu không bằng nhiều giá trị

3

Bạn có thể sử dụng

// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')
9, nhưng tôi không biết chính xác những gì bạn đang cố gắng đạt được?

switch (i) {
    case 1:
    case 2:
    case 3:
        break;
    default:
        alert(yes);
}

Hoặc thậm chí là một bàn tra cứu, một cái gì đó như thế này.

var x = {
    1: true,
    2: true,
    3: true
};

if (!x[i]) {
    alert('yes');
}

Nhưng nếu bạn muốn nghiêm ngặt về nó và có rất ít bài kiểm tra để thực hiện, thì có lẽ không có gì tốt hơn.

if (i !== 1 && i !== 2 && i !== 3) {
    alert('yes');
}

Đã trả lời ngày 2 tháng 6 năm 2015 lúc 9:48Jun 2, 2015 at 9:48

Xotic750Xotic750Xotic750

22.3k8 Huy hiệu vàng55 Huy hiệu bạc78 Huy hiệu Đồng8 gold badges55 silver badges78 bronze badges

2

Tạo một mảng và sử dụng indexof ()

if([1,2,3].indexOf(i) < 0){
    alert('yes');
}

Nếu kết quả lớn hơn

if (!(i==1&2&3)) { alert('yes')}
0, điều đó có nghĩa là
// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')
7 là một trong những giá trị đó.

Tôi không nghĩ

if (!(i=1&2&3)) { alert('yes')}

sẽ hoạt động (theo mục tiêu của bạn) vì

if (!(i==1&2&3)) { alert('yes')}
2 là bitwise và. Ngoài ra, bạn đang sử dụng một toán tử
if (!(i==1&2&3)) { alert('yes')}
3AND. Also, you are using one
if (!(i==1&2&3)) { alert('yes')}
3 operator

Đã trả lời ngày 2 tháng 6 năm 2015 lúc 9:39Jun 2, 2015 at 9:39

Hướng dẫn javascript if not equal to multiple values - javascript nếu không bằng nhiều giá trị

AmmarcSeamMarcseAmmarCSE

29,5K5 Huy hiệu vàng41 Huy hiệu bạc53 Huy hiệu Đồng5 gold badges41 silver badges53 bronze badges

3

Đây là một nhiệm vụ lập trình dường như đơn giản mà chúng tôi đối phó hàng ngày. Ở đây, tình hình:

  • 1) Bạn có một chuỗi trong JavaScript, như
    if (!(i==1&2&3)) { alert('yes')}
    
    4.
  • 2) Bạn cần biết liệu chuỗi đó có bằng một trong nhiều giá trị hay không, giả sử
    if (!(i==1&2&3)) { alert('yes')}
    
    5 hoặc
    if (!(i==1&2&3)) { alert('yes')}
    
    6 (vì trái cây màu vàng cần chế biến trái cây màu vàng đặc biệt hoặc một cái gì đó).

Hầu hết mọi người hoàn thành điều này bằng cách thực hiện các so sánh hai chuỗi được kết nối bởi một logic hoặc, trông như thế này:

if(!a && !b) {
  // is not a and is not b
}
0

Mà hoạt động tốt, nhưng hơi cồng kềnh. Ý tôi là, bạn phải gõ

if (!(i==1&2&3)) { alert('yes')}
7 hai lần. Nó cũng không có quy mô tốt. Giả sử sản phẩm chế biến trái cây của bạn cất cánh và bạn cần hỗ trợ nhiều trái cây hơn, bây giờ bạn có điều này:

if(!a && !b) {
  // is not a and is not b
}
1

Điều này đang trở nên hơi xấu xí. Hãy cùng xem xét một số cách khác để thực hiện cùng một kiểm tra.

Công tắc

Câu lệnh chuyển đổi có thể được sử dụng để đạt được cùng một đầu:

if(!a && !b) {
  // is not a and is not b
}
2

Cách tiếp cận này sẽ hữu ích nếu chúng ta phải xử lý nhiều phân loại trái cây. Nhưng để kiểm tra nó, rất nhiều việc gõ và chiếm rất nhiều không gian.

Dựa trên mảng

ECMAScript 5 đã giới thiệu một phương thức

if (!(i==1&2&3)) { alert('yes')}
8 trên
if (!(i==1&2&3)) { alert('yes')}
9 (tài liệu). Chúng ta có thể sử dụng điều này để tạo một mảng trên đường bay, sau đó xem liệu giá trị có khớp với một trong các giá trị trong mảng hay không:

if(!a && !b) {
  // is not a and is not b
}
3

Điều này là tốt hơn, nhưng vẫn không lý tưởng. Hiểu mã này dựa trên người đọc biết rằng phương thức

if (!(i==1&2&3)) { alert('yes')}
8 trả về
if (!(i==1&2&3)) { alert('yes')}
0, điều này không nhất thiết là kiến ​​thức phổ biến.

Ngoài ra, vì

if (!((i==1) || (i==2) || (i ==3) )) { alert('yes');}
2 đã được thêm vào Ecmascript 5, nó không có mặt trong IE

Nói về các thư viện, hầu hết cung cấp một phương tiện trình duyệt chéo để tìm các giá trị trong một mảng.

jQuery

JQuery cung cấp một phương thức

if (!((i==1) || (i==2) || (i ==3) )) { alert('yes');}
4 (tài liệu):

if(!a && !b) {
  // is not a and is not b
}
4

Gạch dưới

UnderCore.js cung cấp một phương thức

if (!((i==1) || (i==2) || (i ==3) )) { alert('yes');}
5 (tài liệu):

if(!a && !b) {
  // is not a and is not b
}
5

Các thư viện khác cung cấp các phương pháp tương tự. Cá nhân, tôi thấy API Undercore là sạch nhất. Các API chứa trực giác trả lại một boolean và ở đó không có nhiều để gõ. Tuy nhiên, bạn có thể thấy mình cần phải nhớ thứ tự của các tham số (mảng có đến trước hay giá trị không?).

Kiểm tra sẽ sạch hơn nếu phương thức

if (!((i==1) || (i==2) || (i ==3) )) { alert('yes');}
5 được thêm trực tiếp vào
if (!(i==1&2&3)) { alert('yes')}
9:

if(!a && !b) {
  // is not a and is not b
}
6

Điều này cho phép kiểm tra được:

if(!a && !b) {
  // is not a and is not b
}
7

Biểu cảm thường xuyên

Một phương tiện thường bị bỏ qua để thực hiện kiểm tra này là sử dụng các biểu thức thông thường thông qua

if (!((i==1) || (i==2) || (i ==3) )) { alert('yes');}
8 (tài liệu).

if(!a && !b) {
  // is not a and is not b
}
8

Kiểm tra này rõ ràng đòi hỏi số lượng gõ ít nhất. Nó cũng là linh hoạt nhất vì bạn có thể dễ dàng thay đổi những thứ như độ nhạy của trường hợp, xử lý nhân vật đặc biệt, không gian trắng, v.v ... Điều này sẽ hoạt động trong tất cả các trình duyệt và bạn không phải lo lắng về việc gây rối với các nguyên mẫu gốc.

Mặc dù đây là lựa chọn mạnh mẽ nhất, nhưng nó có chi phí không thể đọc được. Tôi đã phải tra cứu

if (!((i==1) || (i==2) || (i ==3) )) { alert('yes');}
9 (khớp khi bắt đầu đầu vào) và
switch (i) {
    case 1:
    case 2:
    case 3:
        break;
    default:
        alert(yes);
}
0 (khớp ở cuối đầu vào) khi viết bài đăng này.

Có! = Làm việc trong JavaScript?

Toán tử bất bình đẳng (! =) Kiểm tra xem hai toán hạng của nó không bằng nhau, trả về kết quả boolean.Không giống như toán tử bấ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 not equal, returning a Boolean result. Unlike the strict inequality operator, it attempts to convert and compare operands that are of different types.

Làm thế nào để bạn viết không bằng trong điều kiện nếu điều kiện?

Toán tử không bằng nhau (! =) Trả về đúng nếu các toán hạng không có cùng giá trị;Nếu không, nó trả về sai.( != ) returns true if the operands don't have the same value; otherwise, it returns false .

Làm thế nào để bạn so sánh nhiều giá trị trong một câu lệnh IF?

Để kiểm tra xem một biến có bằng tất cả nhiều giá trị hay không, hãy sử dụng toán tử logic và (&&) để chuỗi so sánh nhiều bình đẳng.Nếu tất cả các so sánh trả về true, tất cả các giá trị đều bằng biến.Đã sao chép!Chúng tôi đã sử dụng toán tử logic và (&&) để xâu chuỗi nhiều kiểm tra bình đẳng.use the logical AND (&&) operator to chain multiple equality comparisons. If all comparisons return true , all values are equal to the variable. Copied! We used the logical AND (&&) operator to chain multiple equality checks.

Cú pháp nào được sử dụng để kiểm tra rằng ba biến không bằng nhau?

Toán tử bất bình đẳng nghiêm ngặt (! ==) kiểm tra xem hai toán hạng của nó không bằng nhau, trả về kết quả boolean.