Thay thế tìm kiếm trong JavaScript

Phương thức find[] dùng để tìm tất cả các phần tử con của phần tử được chọn. Nó tìm phần tử trong cây DOM bằng cách duyệt qua từ gốc đến lá

Phương thức filter[] được sử dụng để lọc tất cả các phần tử và trả về phần tử phù hợp và phần tử không khớp sẽ bị xóa

Sự khác biệt duy nhất là phương thức filter[] tìm kiếm qua tất cả các phần tử trong khi phương thức find[] chỉ tìm kiếm qua tất cả các phần tử con

Tuy nhiên, nếu các số được sắp xếp dưới dạng chuỗi, thì "25" lớn hơn "100", vì "2" lớn hơn "1"

Do đó, phương thức sort[] sẽ tạo ra kết quả không chính xác khi sắp xếp các số

Bạn có thể khắc phục điều này bằng cách cung cấp chức năng so sánh

Thí dụ

const point = [40, 100, 1, 5, 25, 10];
điểm. sắp xếp[hàm[a, b]{return a - b}];

Tự mình thử »

Sử dụng thủ thuật tương tự để sắp xếp một mảng giảm dần

Thí dụ

const point = [40, 100, 1, 5, 25, 10];
điểm. sắp xếp[hàm[a, b]{return b - a}];

Tự mình thử »

Chức năng so sánh

Mục đích của hàm so sánh là xác định thứ tự sắp xếp thay thế

Hàm so sánh sẽ trả về giá trị âm, 0 hoặc dương, tùy thuộc vào các đối số

hàm[a, b]{return a - b}

Khi hàm sort[] so sánh hai giá trị, nó sẽ gửi các giá trị đến hàm so sánh và sắp xếp các giá trị theo giá trị được trả về [âm, 0, dương]

Nếu kết quả là âm, thì a được sắp xếp trước b

Nếu kết quả là dương, b được sắp xếp trước a

Nếu kết quả là 0, không có thay đổi nào được thực hiện với thứ tự sắp xếp của hai giá trị

Thí dụ

Hàm so sánh so sánh tất cả các giá trị trong mảng, hai giá trị tại một thời điểm sort[]0

Khi so sánh 40 và 100, phương thức sort[] gọi hàm so sánh [40, 100]

Hàm tính toán 40 - 100 sort[]2 và vì kết quả là âm [-60], hàm sắp xếp sẽ sắp xếp 40 thành giá trị nhỏ hơn 100

Bạn có thể sử dụng đoạn mã này để thử nghiệm sắp xếp theo thứ tự số và bảng chữ cái

Sắp xếp theo bảng chữ cái
Sắp xếp theo số

Tự mình thử »

Sắp xếp một mảng theo thứ tự ngẫu nhiên

Thí dụ

const point = [40, 100, 1, 5, 25, 10];
điểm. sắp xếp [hàm [] {trả về 0. 5 - Toán. ngẫu nhiên[]}];

Tự mình thử »

Phương pháp Fisher Yates

Ví dụ trên, mảng. sắp xếp [], không chính xác. Nó sẽ ưu tiên một số con số hơn những con số khác

Phương pháp chính xác phổ biến nhất, được gọi là Fisher Yates shuffle, và được giới thiệu trong khoa học dữ liệu vào đầu năm 1938

Trong JavaScript, phương thức này có thể được dịch sang cái này

Thí dụ

const điểm = [40, 100, 1, 5, 25, 10];

for [hãy i = điểm. chiều dài -1; . tầng [Toán. random[] * [i+1]];
  let j = Math.floor[Math.random[] * [i+1]];
  let k = point[i];
  point[i] = point[j];
  points[j] = k;
}

Tự mình thử »

Tìm giá trị mảng cao nhất [hoặc thấp nhất]

Không có chức năng tích hợp để tìm giá trị tối đa hoặc tối thiểu trong một mảng

Tuy nhiên, sau khi bạn đã sắp xếp một mảng, bạn có thể sử dụng chỉ mục để lấy giá trị cao nhất và thấp nhất

Sắp xếp tăng dần

Thí dụ

const point = [40, 100, 1, 5, 25, 10];
điểm. sort[function[a, b]{return a - b}];
// bây giờ điểm[0] chứa giá trị thấp nhất
// và điểm[ . length-1] chứa giá trị cao nhất

Tự mình thử »

Sắp xếp giảm dần

Thí dụ

const point = [40, 100, 1, 5, 25, 10];
điểm. sort[function[a, b]{return b - a}];
// bây giờ điểm[0] chứa giá trị cao nhất
// và điểm[ . length-1] chứa giá trị thấp nhất

Tự mình thử »

Sắp xếp toàn bộ mảng là một phương pháp rất kém hiệu quả nếu bạn chỉ muốn tìm giá trị cao nhất [hoặc thấp nhất]

Sử dụng toán học. max[] trên Mảng

Bạn có thể sử dụng sort[]3 để tìm số cao nhất trong một mảng

sort[]4 tương đương với sort[]5

Sử dụng toán học. min[] trên Mảng

Bạn có thể sử dụng sort[]6 để tìm số thấp nhất trong một mảng

sort[]7 tương đương với sort[]8

Các phương thức JavaScript tối thiểu/tối đa của tôi

Giải pháp nhanh nhất là sử dụng phương pháp "nhà làm"

Hàm này lặp qua một mảng so sánh từng giá trị với giá trị cao nhất được tìm thấy

Ví dụ [Tìm Max]

function myArrayMax[arr] {
  let len ​​= arr. độ dài;
  let max = -Infinity;
  while [len--] {
    if [arr[len] > max
      max = arr[len];
    }
  }
  return max;
}

Tự mình thử »

Hàm này lặp qua một mảng so sánh từng giá trị với giá trị thấp nhất được tìm thấy

Ví dụ [Tìm Min]

function myArrayMin[arr] {
  let len ​​= arr. độ dài;
  let min = Infinity;
  while [len--] {
    if [arr[len] < min]
      min = arr[len];
    }
  }
  return min;
}

Tự mình thử »

Sắp xếp mảng đối tượng

Mảng JavaScript thường chứa các đối tượng

Thí dụ

const xe ô tô = [
  {type. "Volvo", năm. 2016},
  {type. "Saab", năm. 2001},
  {type. "BMW", năm. 2010}
];

Ngay cả khi các đối tượng có các thuộc tính của các kiểu dữ liệu khác nhau, phương thức sort[] có thể được sử dụng để sắp xếp mảng

Tôi có thể sử dụng cái gì thay vì tìm trong JavaScript?

Nếu bạn cần danh sách tất cả các kết quả phù hợp, thì bạn nên sử dụng . bộ lọc[] thay vì. tìm thấy[]. Nếu không tìm thấy kết quả phù hợp,.

Làm cách nào để sử dụng tìm trong JavaScript?

Tìm mảng JavaScript[] . Phương thức find[] thực thi một hàm cho từng phần tử mảng. Phương thức find[] trả về undefined nếu không tìm thấy phần tử nào. Phương thức find[] không thực thi hàm đối với phần tử rỗng. The find[] method returns the value of the first element that passes a test. The find[] method executes a function for each array element. The find[] method returns undefined if no elements are found. The find[] method does not execute the function for empty elements.

Sự khác biệt giữa tìm và lọc trong JavaScript là gì?

filter[] trả về một mảng chứa phần tử thỏa mãn điều kiện, nhưng find[] trả về chính phần tử thỏa mãn điều kiện . Trong filter[] , toàn bộ mảng được lặp lại mặc dù thực tế là phần tử được tìm kiếm đã xuất hiện ngay từ đầu.

Sự khác biệt giữa tìm và một số trong JavaScript là gì?

Sự khác biệt nằm ở đầu ra. find sẽ trả về giá trị, một số sẽ trả về giá trị boolean .

Chủ Đề