Trong JavaScript, tôi đang làm những điều sau đây hoạt động tốt.
if [myVar == 25 || myVar == 26 || myVar == 27 || myVar == 28]
{
//do something
}
Làm thế nào tôi có thể rút ngắn nó? một cái gì đó như sau đây.
if [myVar IN ['25','26','27','28']] {
//do something
}
hoặc
if[myVar.indexOf["25","26","27","28"] > -1] ] {//do something}
R3tep
12.1k10 Huy hiệu vàng44 Huy hiệu bạc73 Huy hiệu đồng10 gold badges44 silver badges73 bronze badges
Hỏi ngày 16 tháng 4 năm 2014 lúc 11:51Apr 16, 2014 at 11:51
David Garciadavid GarciaDavid Garcia
2.88218 Huy hiệu vàng53 Huy hiệu bạc88 Huy hiệu Đồng18 gold badges53 silver badges88 bronze badges
Bạn có thể sử dụng
if [myVar IN ['25','26','27','28']] {
//do something
}
0, nó trả về chỉ mục đầu tiên mà tại đó một phần tử nhất định có thể được tìm thấy trong mảng hoặc if [myVar IN ['25','26','27','28']] {
//do something
}
1 nếu nó không có mặt.Sử dụng
var arr = [25, 26, 27, 28];
console.log[arr.indexOf[25] > -1];
console.log[arr.indexOf[31] > -1];
Mảng.includes [] Phương thức cũng có thể được sử dụng, nó trả về
if [myVar IN ['25','26','27','28']] {
//do something
}
2.var arr = [25, 26, 27, 28];
console.log[arr.includes[25]];
console.log[arr.includes[31]];
Đã trả lời ngày 16 tháng 4 năm 2014 lúc 11:53Apr 16, 2014 at 11:53
Chỉ cần thử với:
if [ [25, 26, 27, 28].indexOf[myVar] > -1 ] {}
Đã trả lời ngày 16 tháng 4 năm 2014 lúc 11:53Apr 16, 2014 at 11:53
Chỉ cần thử với:hsz
Hszhsz58 gold badges254 silver badges308 bronze badges
2
Phù bằng vàng 145K58
myVar = [myVar == parseInt[myVar] ? myVar : false]; //to check if variable is an integer and not float
if [ myVar >= 25 && myVar -1] {
// ... do something ...
}
David Garciadavid Garcia
2.88218 Huy hiệu vàng53 Huy hiệu bạc88 Huy hiệu Đồng1 gold badge22 silver badges31 bronze badges
Bạn có thể sử dụng
if [myVar IN ['25','26','27','28']] {
//do something
}
0, nó trả về chỉ mục đầu tiên mà tại đó một phần tử nhất định có thể được tìm thấy trong mảng hoặc if [myVar IN ['25','26','27','28']] {
//do something
}
1 nếu nó không có mặt.Apr 16, 2014 at 12:02
Sử dụngJLRishe
Mảng.includes [] Phương thức cũng có thể được sử dụng, nó trả về
2.19 gold badges127 silver badges164 bronze badgesif [myVar IN ['25','26','27','28']] {
//do something
}
0
Đã trả lời ngày 16 tháng 4 năm 2014 lúc 11:53
Chỉ cần thử với:
Hszhsz
Phù bằng vàng 145K58
Array.prototype.indexOf = function[elt /*, from*/] { var len = this.length >>> 0; var from = Number[arguments[1]] || 0; from = [from < 0] ? Math.ceil[from] : Math.floor[from]; if [from < 0] { from += len; } for [; from < len; from++] { if [from in this && this[from] === elt]{ return from; } } return -1;
Cách khác :
Bản thử trực tiếp
Bản thử trực tiếp
Chỉnh sửa dựa trên nhận xét của Anthony GristApr 16, 2014 at 12:10
Cách này hoạt động nếu bạn biết những giá trị đó sẽ là gì [nghĩa là chúng không năng động] và mảng của bạn chứa một loạt các giá trị số liên tiếp.Sandeeproop
Vì
3, có một số vấn đề tương thích của trình duyệt và yêu cầu thêm một bước [so sánh kết quả với -1], một cách tiếp cận thay thế, trình duyệt chéo là phương thức tiện ích jQuery sau đây [nếu bạn đưa jQuery vào dự án của bạn]:1 gold badge12 silver badges18 bronze badgesif [myVar IN ['25','26','27','28']] {
//do something
}
var validValues = [25, 26, 27, 28]
var myVar = 25
if [validValues.includes[myVar]] {
//do something
}
BharatDec 17, 2021 at 5:21