Làm cách nào để kiểm tra xem một số không có trong một mảng JavaScript hay không?

Đây là Công thức mã để kiểm tra xem mảng #JavaScript có chứa giá trị không. Bạn có thể sử dụng phương thức mảng mới

const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
3 😋 Đối với các trình duyệt cũ hơn và IE, bạn có thể sử dụng
const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
4 👍

const array = ['🥗', '🍔', '🍰'];

// Modern Browser
array.includes('🍰'); // true

// Older Browser
array.indexOf('🍰') !== -1; // true

const symbol = Symbol('symbol'); const array = [ 'string', 200, 0, undefined, null, symbol ]; 3 với các kiểu nguyên thủy khác

Bên cạnh các chuỗi,

const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
3 cũng hoạt động tốt với các kiểu nguyên thủy khác

const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];

Sử dụng

const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
3

array.includes('string'); // true
array.includes(200); // true
array.includes(0); // true
array.includes(undefined); // true
array.includes(null); // true
array.includes(symbol); // true

Sử dụng

const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
4

array.indexOf('string') !== -1; // true
array.indexOf(200) !== -1; // true
array.indexOf(0) !== -1; // true
array.indexOf(undefined) !== -1; // true
array.indexOf(null) !== -1; // true
array.indexOf(symbol) !== -1; // true

Hãy cẩn thận của const symbol = Symbol('symbol'); const array = [ 'string', 200, 0, undefined, null, symbol ]; 4

Cho đến giờ, tôi đã cho bạn thấy các giá trị mà cả

const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
3 và
const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
4 đều có thể hoán đổi cho nhau. Tuy nhiên, có một giá trị, nơi chúng khác nhau 🤭

const array = [NaN];

// ✅
array.includes(NaN); // true

// 😱
array.indexOf(NaN) !== -1; // false

Kiểm tra Mảng đối tượng bằng cách sử dụng array.includes('string'); // true array.includes(200); // true array.includes(0); // true array.includes(undefined); // true array.includes(null); // true array.includes(symbol); // true 2

Để có giải pháp linh hoạt hơn hoạt động trên các loại dữ liệu khác, bạn có thể muốn sử dụng

array.includes('string'); // true
array.includes(200); // true
array.includes(0); // true
array.includes(undefined); // true
array.includes(null); // true
array.includes(symbol); // true
3 thay thế

". một số()". kiểm tra xem ít nhất một phần tử trong mảng có vượt qua bài kiểm tra được thực hiện bởi hàm được cung cấp hay không. Nó trả về một giá trị Boolean

const array = ['🥗', '🍔', '🍰'];

array.some(food => food === '🍰'); // true

Phương pháp này là lý tưởng cho một mảng các đối tượng

const array = [{ name: 'js' }, { name: 'css' }];

array.some(code => code.name === 'js'); // true
array.some(code => code.name === '🤖'); // false

Trong ghi chú mã trước đây, tôi đã nói về một cách nhanh và bẩn để kiểm tra

array.includes('string'); // true
array.includes(200); // true
array.includes(0); // true
array.includes(undefined); // true
array.includes(null); // true
array.includes(symbol); // true
4 bằng cách sử dụng
array.includes('string'); // true
array.includes(200); // true
array.includes(0); // true
array.includes(undefined); // true
array.includes(null); // true
array.includes(symbol); // true
5

Cách so sánh 2 đối tượng trong JavaScript

Lấy khái niệm đó, chúng ta cũng có thể sử dụng nó để so sánh phần tử đối tượng trong một mảng như thế này

const array = [{ name: 'js' }, { name: 'css' }];

array.some(code => JSON.stringify(code) === JSON.stringify({ name: 'css' }));
// true

Trường hợp nhạy cảm

Cả

const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
3 và
const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
4 đều phân biệt chữ hoa chữ thường

const array = ['SAMANTHA'];

array.includes('samantha'); // false
array.indexOf('samantha') !== -1; // false

Để làm cho nó không phân biệt chữ hoa chữ thường, bạn có thể cân nhắc thay đổi chữ hoa chữ thường của mảng như vậy

const array = ['SAMANTHA'];

const sameCaseArray = array.map(value => value.toLowerCase());
// ['samantha']

sameCaseArray.includes('samantha'); // true
sameCaseArray.indexOf('samantha') !== -1; // true

Nhưng nếu bạn đang sử dụng

array.includes('string'); // true
array.includes(200); // true
array.includes(0); // true
array.includes(undefined); // true
array.includes(null); // true
array.includes(symbol); // true
3, bạn có thể làm điều đó trong một dòng

const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
0

Hỗ trợ trình duyệt

Hỗ trợ cho

const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
3 thực sự tốt cho tất cả các trình duyệt hiện đại. Tuy nhiên, nếu bạn cần IE hoặc trình duyệt cũ hơn, bạn sẽ cần sử dụng
const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
4

Tôi có thể sử dụng không?

Đầu vào của cộng đồng

  • @lolinoid.

    array.indexOf('string') !== -1; // true
    array.indexOf(200) !== -1; // true
    array.indexOf(0) !== -1; // true
    array.indexOf(undefined) !== -1; // true
    array.indexOf(null) !== -1; // true
    array.indexOf(symbol) !== -1; // true
    
    1 > @prvnbist Đó là một phương thức DOM Nodes, ví dụ được biết đến nhiều nhất về nó sẽ nhận được một danh sách các tên lớp sẽ là một danh sách nút, sau đó bạn có thể sử dụng phương thức chứa để xem nó có tên lớp hay không. Hoặc bạn có thể chuyển đổi nó thành một mảng và sau đó sử dụng phương thức bao gồm

  • Bạn có thể sử dụng toán tử

    array.indexOf('string') !== -1; // true
    array.indexOf(200) !== -1; // true
    array.indexOf(0) !== -1; // true
    array.indexOf(undefined) !== -1; // true
    array.indexOf(null) !== -1; // true
    array.indexOf(symbol) !== -1; // true
    
    2 để lặp qua một đối tượng để kiểm tra xem có tồn tại khóa thuộc tính cụ thể hay không. (Kiến thức được chia sẻ bởi @fvbix)

const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
1

  • @pixelfixer. Và nếu bạn muốn giá trị được trả về, bạn có thể sử dụng

    array.indexOf('string') !== -1; // true
    array.indexOf(200) !== -1; // true
    array.indexOf(0) !== -1; // true
    array.indexOf(undefined) !== -1; // true
    array.indexOf(null) !== -1; // true
    array.indexOf(symbol) !== -1; // true
    
    3

  • Kiểm tra hiệu suất> mảng indexOf so với bao gồm. Cảm ơn @equiman

  • @smokku. Bạn có thể tránh tất cả các phép so sánh

    array.indexOf('string') !== -1; // true
    array.indexOf(200) !== -1; // true
    array.indexOf(0) !== -1; // true
    array.indexOf(undefined) !== -1; // true
    array.indexOf(null) !== -1; // true
    array.indexOf(symbol) !== -1; // true
    
    4 này bằng cách sử dụng toán tử
    array.indexOf('string') !== -1; // true
    array.indexOf(200) !== -1; // true
    array.indexOf(0) !== -1; // true
    array.indexOf(undefined) !== -1; // true
    array.indexOf(null) !== -1; // true
    array.indexOf(symbol) !== -1; // true
    
    5

const symbol = Symbol('symbol');

const array = [
  'string',
  200,
  0,
  undefined,
  null,
  symbol
];
2

  • @danvc.

    array.indexOf('string') !== -1; // true
    array.indexOf(200) !== -1; // true
    array.indexOf(0) !== -1; // true
    array.indexOf(undefined) !== -1; // true
    array.indexOf(null) !== -1; // true
    array.indexOf(symbol) !== -1; // true
    
    6. Toán tử
    array.indexOf('string') !== -1; // true
    array.indexOf(200) !== -1; // true
    array.indexOf(0) !== -1; // true
    array.indexOf(undefined) !== -1; // true
    array.indexOf(null) !== -1; // true
    array.indexOf(symbol) !== -1; // true
    
    5 theo bit sẽ trả về giá trị trung thực cho bất kỳ thứ gì ngoại trừ
    array.indexOf('string') !== -1; // true
    array.indexOf(200) !== -1; // true
    array.indexOf(0) !== -1; // true
    array.indexOf(undefined) !== -1; // true
    array.indexOf(null) !== -1; // true
    array.indexOf(symbol) !== -1; // true
    
    8. Phủ định nó cũng đơn giản như làm
    array.indexOf('string') !== -1; // true
    array.indexOf(200) !== -1; // true
    array.indexOf(0) !== -1; // true
    array.indexOf(undefined) !== -1; // true
    array.indexOf(null) !== -1; // true
    array.indexOf(symbol) !== -1; // true
    
    9

  • @smokku. Bitwise

    const array = [NaN];
    
    // ✅
    array.includes(NaN); // true
    
    // 😱
    array.indexOf(NaN) !== -1; // false
    
    0 cung cấp cho bạn số ngược lại, nhưng chúng tôi sử dụng hệ thống bổ sung của hai để tránh có
    const array = [NaN];
    
    // ✅
    array.includes(NaN); // true
    
    // 😱
    array.indexOf(NaN) !== -1; // false
    
    1 và
    const array = [NaN];
    
    // ✅
    array.includes(NaN); // true
    
    // 😱
    array.indexOf(NaN) !== -1; // false
    
    2. Vì vậy, các số âm được dịch chuyển một - trong đó
    array.indexOf('string') !== -1; // true
    array.indexOf(200) !== -1; // true
    array.indexOf(0) !== -1; // true
    array.indexOf(undefined) !== -1; // true
    array.indexOf(null) !== -1; // true
    array.indexOf(symbol) !== -1; // true
    
    8 thay thế cho
    const array = [NaN];
    
    // ✅
    array.includes(NaN); // true
    
    // 😱
    array.indexOf(NaN) !== -1; // false
    
    2. Khi chúng tôi phủ định
    array.indexOf('string') !== -1; // true
    array.indexOf(200) !== -1; // true
    array.indexOf(0) !== -1; // true
    array.indexOf(undefined) !== -1; // true
    array.indexOf(null) !== -1; // true
    array.indexOf(symbol) !== -1; // true
    
    8, chúng tôi nhận được
    const array = [NaN];
    
    // ✅
    array.includes(NaN); // true
    
    // 😱
    array.indexOf(NaN) !== -1; // false
    
    1, đây là giá trị sai duy nhất. Tất cả các chỉ số khác mà chúng tôi có thể nhận được là
    const array = [NaN];
    
    // ✅
    array.includes(NaN); // true
    
    // 😱
    array.indexOf(NaN) !== -1; // false
    
    7 sẽ cung cấp cho bạn giá trị trung thực (khác không) khi được chuyển qua bitwise chứ không phải
    array.indexOf('string') !== -1; // true
    array.indexOf(200) !== -1; // true
    array.indexOf(0) !== -1; // true
    array.indexOf(undefined) !== -1; // true
    array.indexOf(null) !== -1; // true
    array.indexOf(symbol) !== -1; // true
    
    5

  • @smokku. Nếu bạn muốn tìm hiểu sâu về vấn đề này, tôi thực sự khuyên bạn nên đọc một cuốn sách của Charles Petzold có tựa đề "Mật mã. Ngôn ngữ ẩn của phần cứng và phần mềm máy tính". Đây là một cuốn sách thú vị, nó sẽ hướng dẫn bạn từ những kiến ​​thức cơ bản về thiết kế mã (như Morse, Braile, v.v. ) thông qua các công tắc điện và bóng đèn nhấp nháy, điện báo, cổng điện tử và dép xỏ ngón, cho đến cấp độ CPU đơn giản