Hướng dẫn can javascript map have object as key? - bản đồ javascript có thể có đối tượng là khóa không?
Đối tượng Show
Thử nóSự mô tảĐối tượng 1 là bộ sưu tập của các cặp giá trị khóa. Một chìa khóa trong 1 chỉ có thể xảy ra một lần; Nó là duy nhất trong bộ sưu tập của ____ 11. Một đối tượng 1 được lặp lại bởi các cặp giá trị khóa-vòng lặp 6 trả về một mảng 2 thành viên 7 cho mỗi lần lặp. Lặp lại xảy ra theo thứ tự chèn, tương ứng với thứ tự trong đó mỗi cặp giá trị khóa lần đầu tiên được chèn vào bản đồ bằng phương thức 8 (nghĩa là không có khóa có cùng giá trị trong bản đồ khi 8 được gọi là ).may
only occur once; it is unique in the 1's collection. A 1 object is iterated by key-value pairs — a 6 loop returns a 2-member array of 7 for each iteration. Iteration happens in insertion order, which corresponds to the order in which each key-value pair was first inserted into the map by the
8 method (that is, there wasn't a key with the same value already in the map when 8 was called).Đặc điểm kỹ thuật yêu cầu các bản đồ phải được thực hiện "Trung bình, cung cấp thời gian truy cập là cao cấp về số lượng các phần tử trong bộ sưu tập". Do đó, nó có thể được biểu diễn bên trong dưới dạng bảng băm (với o (1) tra cứu), một cây tìm kiếm (với o (log (n)) tra cứu) hoặc bất kỳ cấu trúc dữ liệu nào khác, miễn là độ phức tạp tốt hơn o (N). Bình đẳng chínhBình đẳng giá trị dựa trên thuật toán sikevaluezero. . Đối tượng so với bản đồ
6 tương tự như ________ 11, cả hai cho phép bạn đặt các khóa thành các giá trị, truy xuất các giá trị đó, xóa các khóa và phát hiện xem có gì đó được lưu trữ ở một phím không. Vì lý do này (và vì không có lựa chọn thay thế tích hợp), 6 đã được sử dụng như 1 trong lịch sử.Tuy nhiên, có những khác biệt quan trọng làm cho 1 thích hợp hơn trong một số trường hợp:Đặt thuộc tính đối tượngCài đặt các thuộc tính đối tượng cũng hoạt động cho các đối tượng MAP và có thể gây ra sự nhầm lẫn đáng kể. Do đó, điều này dường như hoạt động theo một cách:
Nhưng cách đặt một thuộc tính không tương tác với cấu trúc dữ liệu bản đồ. Nó sử dụng tính năng của đối tượng chung. Giá trị của 'BLA' không được lưu trữ trong bản đồ cho các truy vấn. Các hoạt động khác trên dữ liệu không thành công:
Việc sử dụng chính xác để lưu trữ dữ liệu trong bản đồ là thông qua phương thức 1.
Người xây dựng
2Tạo một đối tượng 1 mới.Tính chất tĩnh 4Hàm tạo thành được sử dụng để tạo các đối tượng dẫn xuất. Thuộc tính thể hiện 5Trả về số cặp khóa/giá trị trong đối tượng 1.Phương pháp thể hiện 7Xóa tất cả các cặp giá trị khóa khỏi đối tượng 1. 9Trả về 0 Nếu một phần tử trong đối tượng 1 tồn tại và đã bị xóa hoặc 2 nếu phần tử không tồn tại. 3 sẽ trở lại 2 sau đó. 5Trả về giá trị được liên kết với khóa được truyền hoặc 6 nếu không có. 7Trả về một boolean cho biết liệu một giá trị có được liên kết với khóa được truyền trong đối tượng 1 hay không. 9Đặt giá trị cho khóa được truyền trong đối tượng 1. Trả về đối tượng 1. 2Trả về một đối tượng lặp mới có chứa một mảng hai thành viên là 7 cho mỗi phần tử trong đối tượng 1 theo thứ tự chèn. 5Trả về một đối tượng lặp mới có chứa các phím cho từng phần tử trong đối tượng 1 theo thứ tự chèn. 7Trả về một đối tượng lặp mới có chứa các giá trị cho từng phần tử trong đối tượng 1 theo thứ tự chèn. 9Trả về một đối tượng lặp mới có chứa một mảng hai thành viên là 7 cho mỗi phần tử trong đối tượng 1 theo thứ tự chèn. 2Trả về một đối tượng lặp mới có chứa các phím cho từng phần tử trong đối tượng 1 theo thứ tự chèn.Trả về một đối tượng lặp mới có chứa các giá trị cho từng phần tử trong đối tượng wrongMap.has('bla') // false wrongMap.delete('bla') // false console.log(wrongMap) // Map { bla: 'blaa', bla2: 'blaaa2' } 1 theo thứ tự chèn.Gọi myMap.forEach((value, key) => { console.log(`${key} = ${value}`); }); // 0 = zero // 1 = one 3 một lần cho mỗi cặp giá trị khóa có trong đối tượng wrongMap.has('bla') // false wrongMap.delete('bla') // false console.log(wrongMap) // Map { bla: 'blaa', bla2: 'blaaa2' } 1, theo thứ tự chèn. Nếu một tham số myMap.forEach((value, key) => { console.log(`${key} = ${value}`); }); // 0 = zero // 1 = one 5 được cung cấp cho myMap.forEach((value, key) => { console.log(`${key} = ${value}`); }); // 0 = zero // 1 = one 6, nó sẽ được sử dụng làm giá trị myMap.forEach((value, key) => { console.log(`${key} = ${value}`); }); // 0 = zero // 1 = one 7 cho mỗi cuộc gọi lại.
Ví dụSử dụng đối tượng bản đồ
Sử dụng NaN làm khóa bản đồ
2 cũng có thể được sử dụng làm chìa khóa. Mặc dù mọi 2 không bằng chính nó ( 4 là đúng), ví dụ sau đây hoạt động vì 2 không thể phân biệt được với nhau:
Lặp lại bản đồ với ... củaBản đồ có thể được lặp lại bằng cách sử dụng vòng lặp 6:
Lặp lại bản đồ với foreach ()
Bản đồ có thể được lặp lại bằng phương pháp const kvArray = [['key1', 'value1'], ['key2', 'value2']]; // Use the regular Map constructor to transform a 2D key-value Array into a map const myMap = new Map(kvArray); console.log(myMap.get('key1')); // "value1" // Use Array.from() to transform a map into a 2D key-value Array console.log(Array.from(myMap)); // Will show you exactly the same Array as kvArray // A succinct way to do the same, using the spread syntax console.log([...myMap]); // Or use the keys() or values() iterators, and convert them to an array console.log(Array.from(myMap.keys())); // ["key1", "key2"] 3:Quan hệ với các đối tượng mảng
Bản đồ nhân bản và hợp nhất Keep in mind that the data itself is not cloned. Bản đồ có thể được hợp nhất, duy trì tính độc đáo quan trọng:
Bản đồ cũng có thể được hợp nhất với các mảng: 0Thông số kỹ thuật
Tính tương thích của trình duyệt webBảng BCD chỉ tải trong trình duyệt Xem thêm
Bạn có thể sử dụng một đối tượng như một JavaScript khóa không?Bạn có thể sử dụng các đối tượng làm khóa đối tượng trong JavaScript không?# Câu trả lời ngắn gọn là không".Tất cả các phím đối tượng JavaScript là chuỗi.no". All JavaScript object keys are strings.
Sự khác biệt giữa bản đồ và các phím của một đối tượng là gì?Trong đối tượng, loại dữ liệu của trường khóa bị giới hạn ở số nguyên, chuỗi và ký hiệu.Trong khi trong bản đồ, trường khóa có thể thuộc bất kỳ loại dữ liệu nào (số nguyên, một mảng, thậm chí là một đối tượng!) Trong bản đồ, thứ tự ban đầu của các phần tử được bảo tồn.Điều này không đúng trong trường hợp của các đối tượng.
Bản đồ được sử dụng cho đối tượng trong JavaScript?Đối tượng bản đồ giữ các cặp giá trị khóa và nhớ thứ tự chèn ban đầu của các khóa.Bất kỳ giá trị nào (cả đối tượng và giá trị nguyên thủy) có thể được sử dụng làm khóa hoặc giá trị.. Any value (both objects and primitive values) may be used as either a key or a value. |