Hướng dẫn what is hash key in javascript? - khóa băm trong javascript là gì?
Các bảng Hash là một cấu trúc dữ liệu cho phép bạn tạo một danh sách các giá trị được ghép nối. Sau đó, bạn có thể truy xuất một giá trị nhất định bằng cách sử dụng khóa cho giá trị đó mà bạn đặt vào bảng trước. Bảng băm biến một phím thành một chỉ mục số nguyên bằng hàm băm và chỉ mục sẽ quyết định nơi lưu trữ cặp khóa/giá trị trong bộ nhớ: Bạn sẽ thường sử dụng bảng băm vì các hoạt động tìm kiếm, chèn và xóa nhanh của nó: Tìm kiếm O (1) Chèn Nguồn từ Wikipedia Hướng dẫn này sẽ giúp bạn hiểu việc triển khai bảng băm trong JavaScript cũng như cách bạn có thể xây dựng lớp bảng băm của riêng mình. Cách sử dụng các bảng băm với các lớp đối tượng và bản đồ trong JavaScript Đối tượng 5 của JavaScript là một loại thực hiện bảng băm đặc biệt vì hai lý do:Nó có các thuộc tính được thêm bởi lớp 5. Các khóa của bạn nhập có thể xung đột và ghi đè các thuộc tính mặc định được kế thừa từ lớp.Kích thước của bảng băm không được theo dõi. Bạn cần đếm thủ công số lượng thuộc tính được định nghĩa bởi lập trình viên thay vì được thừa hưởng từ nguyên mẫu.Ví dụ: nguyên mẫu 5 có phương thức 5 cho phép bạn kiểm tra xem thuộc tính không được kế thừa: JavaScript đối tượng Phương thức kế thừa Ví dụ cuộc gọiJavaScript không chặn nỗ lực ghi đè lên phương thức 5, điều này có thể gây ra lỗi như thế này: JavaScript Thuộc tính kế thừa đối tượng bị ghi đèĐể xử lý những thiếu sót này, JavaScript đã tạo ra một triển khai khác của cấu trúc dữ liệu bảng Hash được gọi là 6 5, 6 cho phép bạn lưu trữ các cặp giá trị khóa bên trong cấu trúc dữ liệu. Đây là một ví dụ về 6 trong hành động: JavaScript Lớp bản đồ là một triển khai khác của bảng bămKhông giống như loại 5, 6 yêu cầu bạn sử dụng các phương thức 3 và 4 để xác định và truy xuất bất kỳ giá trị cặp chính nào mà bạn muốn được thêm vào cấu trúc dữ liệu.Bạn cũng không thể ghi đè lên các thuộc tính được kế thừa 6. Ví dụ: mã sau đã cố gắng ghi đè giá trị thuộc tính 6 thành 7:
Map Loại thuộc tính không thể ghi đèNhư bạn có thể thấy từ mã ở trên, bạn không thể thêm một mục nhập mới vào đối tượng const obj = {}; obj.name = "Nathan"; obj.hasOwnProperty = true; console.log(obj.hasOwnProperty("name")); // Error: obj.hasOwnProperty is not a function6 mà không cần sử dụng phương thức const collection = new Map(); collection.set("Nathan", "555-0182"); collection["size"] = false; console.log(collection.get("size")); // undefined console.log(collection.size); // 13.Cấu trúc dữ liệu 6 cũng có thể lặp lại, có nghĩa là bạn có thể lặp lại dữ liệu như sau: Idering thông qua một đối tượng bản đồ
Bạn có thể triển khai bảng băm trong JavaScript trong ba bước: Tạo một lớp 3 với các thuộc tính ban đầu 4 và 6Thêm hàm 6 để chuyển đổi các phím thành các chỉ sốThêm các phương thức const collection = new Map(); collection.set("Nathan", "555-0182"); collection["size"] = false; console.log(collection.get("size")); // undefined console.log(collection.size); // 13 và const collection = new Map(); collection.set("Nathan", "555-0182"); collection["size"] = false; console.log(collection.get("size")); // undefined console.log(collection.size); // 14 để thêm và truy xuất các cặp khóa/giá trị từ bảng.Được rồi, hãy bắt đầu với việc tạo lớp 3. Mã bên dưới sẽ tạo ra một thùng 4 với kích thước 1: Hashtable Lớp thuộc tính ban đầu
Tất cả các cặp khóa/giá trị của bạn sẽ được lưu trữ bên trong thuộc tính 4.Cách viết phương thức băm ()
Bây giờ bạn đã hoàn thành phương thức 8, đã đến lúc viết các phương thức 3 và 4.Cách ghi phương thức SET ()Để đặt cặp khóa/giá trị trong bảng băm của bạn, bạn cần ghi một phương thức 3 chấp nhận & nbsp; ________ 74 làm tham số của nó:
Bây giờ phương thức 3 đã hoàn tất, hãy viết phương thức 4 để lấy một giá trị bằng khóa của nó.Cách viết phương thức get ()Để nhận được một giá trị nhất định từ bảng băm, bạn cần ghi một phương thức 4 chấp nhận giá trị 4 làm tham số của nó:
0Bằng cách này, phương thức 4 sẽ trả về cặp khóa/giá trị trở lại hoặc 0 khi không có cặp khóa/giá trị được lưu trữ trong 7 được chỉ định.Càng xa càng tốt. Hãy thêm một phương thức khác để xóa cặp khóa/giá trị khỏi bảng băm tiếp theo. Cách ghi phương thức Remove ()Để xóa một cặp khóa/giá trị khỏi bảng băm, bạn cần ghi một phương thức 2 chấp nhận giá trị 4 làm tham số của nó:
1Với điều đó, bây giờ bạn có một phương pháp 2 hoạt động. Hãy xem liệu lớp 3 có hoạt động đúng không.Cách kiểm tra việc thực hiện bảng bămĐã đến lúc kiểm tra việc thực hiện bảng băm. Đây là mã đầy đủ cho việc triển khai bảng băm một lần nữa: 2 Triển khai Hashtable trong JavaScriptĐể kiểm tra lớp 3, tôi sẽ tạo một thể hiện mới của 05 và đặt một số cặp khóa/giá trị như hình dưới đây. Các cặp khóa/giá trị dưới đây chỉ là các giá trị số tùy ý được ghép nối với tên quốc gia mà không có bất kỳ ý nghĩa đặc biệt nào: 3Testing set set () Phương thứcSau đó, chúng ta hãy cố gắng truy xuất chúng bằng phương pháp 4: 4Testing Hashtable Get () Phương thứcCuối cùng, chúng ta hãy cố gắng xóa một trong những giá trị này bằng phương thức 2: 5 Thử nghiệm Hashtable Remove () Phương thứcĐược rồi, tất cả các phương pháp đang hoạt động như mong đợi. Hãy thử một lần chèn khác với một thể hiện 3 mới và truy xuất các giá trị đó: 6Hash Chỉ số bảng va chạm & NBSP;Ối! Có vẻ như chúng tôi đã gặp một số rắc rối ở đây. 😨 Cách xử lý chỉ số va chạmĐôi khi, hàm băm trong bảng băm có thể trả về cùng số 7. Trong trường hợp thử nghiệm ở trên, chuỗi 10 và 11 đều trả về cùng một giá trị 12 vì số 13 là tổng của cả hai mã ASCII của chúng.both return the same 12 value because the number 13 is the sum of both of their ASCII code.Giá trị 12 tương tự sẽ khiến chỉ số va chạm, ghi đè mục nhập trước đó với mục mới.Ngay bây giờ, dữ liệu được lưu trữ trong triển khai bảng băm của chúng tôi trông như sau: 7Để xử lý va chạm số 7, bạn cần lưu trữ cặp khóa/giá trị trong một mảng thứ hai để kết quả cuối cùng trông như sau: 8Để tạo mảng thứ hai, bạn cần cập nhật phương thức 3 để nó sẽ:
Mã phương thức 3 hoàn chỉnh sẽ như sau: 9Tiếp theo, cập nhật phương thức 4 để nó cũng sẽ kiểm tra mảng cấp hai bằng vòng lặp 27 và trả về cặp khóa/giá trị phù hợp: 0Cuối cùng, bạn cần cập nhật phương thức 2 để nó sẽ lặp qua mảng cấp hai và xóa mảng bằng giá trị 4 bên phải bằng phương thức 30: 1Với điều đó, lớp 3 của bạn sẽ có thể tránh được bất kỳ va chạm số chỉ mục nào và lưu trữ cặp khóa/giá trị bên trong mảng cấp hai.Như một phần thưởng, hãy thêm một phương thức 32 sẽ hiển thị tất cả các cặp khóa/giá trị được lưu trữ trong bảng băm. Bạn chỉ cần sử dụng phương thức 33 để lặp qua bảng và 34 Các giá trị cho một chuỗi như hình dưới đây: 2Đây là mã lớp 3 hoàn chỉnh một lần nữa với việc tránh va chạm được áp dụng cho tài liệu tham khảo của bạn:Triển khai lớp Hashtable ____23CompleteBạn có thể kiểm tra việc thực hiện bằng cách tạo một thể hiện 3 mới và thực hiện một số chèn và xóa: 4 Một bài kiểm tra hashtableBây giờ không có sự va chạm trong trường hợp 3. Công việc tuyệt vời!Sự kết luậnTrong hướng dẫn này, bạn đã học được bảng băm là gì và JavaScript sử dụng nó như thế nào để tạo cấu trúc dữ liệu 5 và 6.Bạn cũng đã học được cách thực hiện lớp 3 của riêng bạn cũng như cách ngăn các chỉ số chính của bảng Hash va chạm bằng cách sử dụng kỹ thuật chuỗi.Bằng cách sử dụng cấu trúc dữ liệu bảng băm, bạn sẽ có thể tạo một mảng kết hợp với các hoạt động tìm kiếm, chèn và xóa nhanh. 😉 Cảm ơn bạn đã đọc hướng dẫn nàyNếu bạn muốn tìm hiểu thêm về JavaScript, bạn có thể muốn xem trang web của tôi tại Sebhastian.com, nơi tôi đã xuất bản hơn 100 hướng dẫn về lập trình với JavaScript, tất cả đều sử dụng các giải thích dễ hiểu và ví dụ về mã. Các hướng dẫn bao gồm thao tác chuỗi, thao tác ngày, phương thức mảng và đối tượng, các giải pháp thuật toán JavaScript và nhiều hơn nữa. Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu Hash trong javascript là gì?Hàm băm (thuật toán băm) lấy một khóa (chuỗi) và biến nó thành một số. Sau đó, nó lặp lại số đó thành một chỉ mục trong một mảng. Các từ khác nhau được ánh xạ tới các số khác nhau bởi một hàm băm. Một hàm băm là không thể đảo ngược.takes a key (string) and transforms it into a number. It then remaps that number into an index in an array. Different words are mapped to different numbers by a hash function. A hash function is irreversible.
Chìa khóa băm là gì?Dấu hiệu số, còn được gọi là phím số, pound hoặc băm, khóa trên bàn phím điện thoại.Để sử dụng trong cấu trúc dữ liệu, cơ sở dữ liệu và các ứng dụng mật mã, xem hàm băm hoặc khóa duy nhất.a key on a telephone keypad. For its use in data structure, database and cryptographic applications, see hash function or unique key.
Làm thế nào để một công việc khóa băm?Băm là quá trình chuyển đổi bất kỳ khóa đã cho hoặc chuỗi ký tự thành một giá trị khác.Điều này thường được biểu thị bằng một giá trị hoặc phím có độ dài ngắn hơn, đại diện và giúp dễ dàng tìm hoặc sử dụng chuỗi gốc.Việc sử dụng phổ biến nhất để băm là việc thực hiện các bảng băm.transforming any given key or a string of characters into another value. This is usually represented by a shorter, fixed-length value or key that represents and makes it easier to find or employ the original string. The most popular use for hashing is the implementation of hash tables.
Ví dụ băm là gì?Một ví dụ về băm băm từ ngữ Hello Hello sẽ tạo ra một đầu ra có cùng độ dài với băm cho tôi, tôi sẽ đến cửa hàng.Hàm được sử dụng để tạo băm là xác định, có nghĩa là nó sẽ tạo ra cùng một kết quả mỗi lần sử dụng đầu vào giống nhau.the word “hello” will produce an output that is the same length as the hash for “I am going to the store.” The function used to generate the hash is deterministic, meaning that it will produce the same result each time the same input is used. |