Làm cách nào để lọc nhiều khóa từ đối tượng JavaScript?
Một , chẳng hạn như Show
0 Một chuỗi hoặc ký hiệu đại diện cho khóa thuộc tính 1 Giá trị tài sản Thông thường, đối tượng này được triển khai dưới dạng một mảng hai phần tử, với phần tử đầu tiên là khóa thuộc tính và phần tử thứ hai là giá trị thuộc tính Một đối tượng mới có thuộc tính được cung cấp bởi các mục của iterable Phương thức 2. Phương thức trả về một đối tượng lặp tạo ra các đối tượng giống như mảng hai phần tử. Phần tử đầu tiên là một giá trị sẽ được sử dụng làm khóa thuộc tính và phần tử thứ hai là giá trị để liên kết với khóa thuộc tính đó
4, ngoại trừ việc 4 chỉ trả về các thuộc tính có khóa chuỗi, trong khi Object.fromEntries() cũng có thể tạo các thuộc tính có khóa ký hiệuGhi chú. Không giống như 7, Object.fromEntries() không sử dụng giá trị của 9, vì vậy việc gọi nó trên một hàm tạo khác sẽ không tạo ra các đối tượng thuộc loại đó Bạn có thể sử dụng phần tử Phần tử Logic đánh giá cho các điều kiện có nhiều khóa hoặc giá trịNếu chính sách của bạn có nhiều toán tử điều kiện hoặc nhiều khóa được gắn với một toán tử điều kiện, thì các điều kiện đó được đánh giá bằng cách sử dụng một giá trị logic 0 hoặc 1 mong muốnVí dụ, khối điều kiện sau đây cho thấy hình trên trình bày như thế nào trong một chính sách. Khối điều kiện sử dụng các toán tử điều kiện 2 và 3, và các phím điều kiện 4 và 5. Để gọi hiệu ứng 0 hoặc 1 mong muốn, tất cả các điều kiện phải chuyển thành true. Người dùng đưa ra yêu cầu phải có cả khóa thẻ chính, bộ phận và vai trò, bao gồm một trong các giá trị khóa thẻ được chỉ định trong chính sách. Ngoài ra, người dùng đưa ra yêu cầu phải thuộc về số nhận dạng tài khoản AWS được chỉ định trong chính sách
Khi nhiều giá trị được liệt kê trong một chính sách dành cho các toán tử điều kiện khớp bị phủ định, chẳng hạn như 8 và 9, thì các quyền hiệu lực sẽ hoạt động giống như một ____ logic. Ví dụ: nếu có nhiều giá trị 5 trong toán tử điều kiện 8, thì chuỗi không thể khớp với bất kỳ giá trị nào trong số các giá trị 5 được liệt kê để giải quyết điều kiện thành trueSử dụng nhiều khóa và giá trịĐể so sánh điều kiện của bạn với a có nhiều giá trị khóa, bạn phải sử dụng toán tử tập hợp 4 hoặc 5. Các toán tử tập hợp này được sử dụng để so sánh hai tập hợp giá trịKhi một điều kiện chính sách so sánh hai bộ giá trị, chẳng hạn như bộ thẻ trong một yêu cầu và bộ thẻ trong một điều kiện chính sách, bạn cần cho AWS biết cách so sánh các bộ. IAM định nghĩa hai toán tử tập hợp, 5 và 4. Bạn phải sử dụng các toán tử tập hợp với các khóa điều kiện đa giá trị. Không sử dụng toán tử tập hợp với các khóa điều kiện có giá trị đơnĐể xác định xem khóa điều kiện AWS là đơn giá trị hay đa giá trị, hãy xem lại loại dữ liệu của nó. Để xem các loại dữ liệu của khóa điều kiện cho một dịch vụ, hãy xem Hành động, Tài nguyên và Khóa điều kiện cho Dịch vụ AWS và chọn dịch vụ có khóa điều kiện mà bạn muốn xem. Nếu trường Loại điều kiện bao gồm tiền tố 8, thì khóa điều kiện có nhiều giá trị. Ví dụ: AWS Key Management Service hỗ trợ các khóa điều kiện với loại dữ liệu đơn giá trị 9 và loại dữ liệu đa giá trị 0
Các từ hạn định 4 và 5 thêm chức năng thao tác thiết lập cho toán tử điều kiện để bạn có thể kiểm tra nhiều giá trị yêu cầu dựa trên nhiều giá trị điều kiện. Ngoài ra, nếu bạn bao gồm khóa chuỗi đa giá trị trong chính sách của mình bằng ký tự đại diện hoặc biến, thì bạn cũng phải sử dụng 5. Đối với các yêu cầu bao gồm nhiều giá trị cho một khóa, bạn phải đặt các giá trị của khóa điều kiện trong dấu ngoặc như một. Ví dụ, 6
Ví dụ về sử dụng nhiều giá trị với toán tử tập điều kiệnBạn có thể tạo một chính sách để kiểm tra nhiều giá trị trong một yêu cầu đối với một hoặc nhiều giá trị mà bạn chỉ định trong chính sách. Giả sử rằng bạn có một bảng Amazon DynamoDB có tên là 1 được dùng để lưu trữ thông tin về các chuỗi trong diễn đàn hỗ trợ kỹ thuật. Bảng có các thuộc tính có tên là 2, 3, 4, 5 và 6
Để biết thông tin về cách sử dụng toán tử tập hợp trong DynamoDB để triển khai quyền truy cập chi tiết vào các thuộc tính và mục dữ liệu riêng lẻ, hãy xem Kiểm soát truy cập chi tiết cho DynamoDB trong Hướng dẫn dành cho nhà phát triển Amazon DynamoDB Bạn có thể tạo chính sách cho phép người dùng chỉ nhìn thấy các thuộc tính 4, 5 và 6. Nếu yêu cầu của người dùng chứa bất kỳ thuộc tính nào trong số này, nó được phép. Nhưng nếu yêu cầu chứa bất kỳ thuộc tính nào khác (ví dụ: 2), yêu cầu sẽ bị từ chối. Nói một cách logic, bạn muốn tạo một danh sách các thuộc tính được phép (_______34_______4, 5, 6). Bạn cũng muốn chỉ ra trong chính sách rằng tất cả các thuộc tính được yêu cầu của người dùng phải nằm trong danh sách các thuộc tính được phép đóVí dụ chính sách sau đây cho thấy cách sử dụng từ hạn định 4 với toán tử điều kiện 3. Điều kiện cho phép người dùng chỉ yêu cầu các thuộc tính 2, 5 hoặc 6 từ bảng DynamoDB có tên là 1
Giả sử người dùng yêu cầu DynamoDB lấy các thuộc tính 5 và 6 từ bảng 1. Trong trường hợp đó, yêu cầu được cho phép vì các thuộc tính được yêu cầu của người dùng đều khớp với các giá trị được chỉ định trong chính sách. Thao tác Condition 3 yêu cầu người dùng chuyển thuộc tính 2 làm khóa bảng cơ sở dữ liệu, điều này cũng được cho phép trong chính sách. Tuy nhiên, nếu yêu cầu của người dùng bao gồm thuộc tính 3, thì yêu cầu không thành công. Lý do là vì 3 không nằm trong danh sách các thuộc tính được phép và từ hạn định 4 yêu cầu tất cả các giá trị được yêu cầu phải được liệt kê trong chính sáchNếu bạn sử dụng Ngoài ra, bạn có thể muốn đảm bảo rằng người dùng rõ ràng bị cấm đưa một số thuộc tính vào yêu cầu, chẳng hạn như thuộc tính 2 và 3. Ví dụ: bạn có thể loại trừ các thuộc tính khi người dùng đang cập nhật bảng DynamoDB, bởi vì một bản cập nhật (thao tác _______186_______1) sẽ không thay đổi một số thuộc tính nhất định. Trong trường hợp đó, bạn tạo một danh sách các thuộc tính bị cấm ( 2, 3). Nếu bất kỳ thuộc tính nào được yêu cầu của người dùng khớp với bất kỳ thuộc tính bị cấm nào, yêu cầu sẽ bị từ chốiVí dụ sau đây cho thấy cách sử dụng từ hạn định 5 để từ chối quyền truy cập vào các thuộc tính 2 và 4 nếu người dùng cố gắng thực hiện hành động Condition 7. Nghĩa là, nếu người dùng cố cập nhật một trong hai thuộc tính đó trong bảng 1. Lưu ý rằng phần tử Condition 9 được đặt thành 1
Giả sử rằng người dùng đưa ra yêu cầu cập nhật các thuộc tính 4 và 5 của bảng 1. Vòng loại 5 xác định xem có bất kỳ thuộc tính nào được yêu cầu xuất hiện trong danh sách trong chính sách hay không. Trong trường hợp này, có một trận đấu ( 4), vì vậy điều kiện là đúng. Giả sử các giá trị khác trong yêu cầu cũng khớp (ví dụ: tài nguyên), đánh giá chính sách tổng thể sẽ trả về true. Bởi vì hiệu lực của chính sách là 1, yêu cầu bị từ chốiThay vào đó, hãy tưởng tượng người dùng đưa ra yêu cầu thực hiện 3. Không có thuộc tính nào trong yêu cầu (chỉ 3) khớp với bất kỳ thuộc tính nào được liệt kê trong chính sách ( 2, 4). Điều kiện trả về false, do đó tác động của chính sách ( 1) cũng sai và yêu cầu không bị từ chối bởi chính sách này. (Để yêu cầu thành công, nó phải được cho phép rõ ràng bởi một chính sách khác. Nó không bị từ chối rõ ràng bởi chính sách này, nhưng tất cả các yêu cầu đều bị từ chối hoàn toàn. )Khi bạn sử dụng toán tử điều kiện 4, nó sẽ trả về true nếu không có khóa nào trong yêu cầu hoặc nếu các giá trị khóa chuyển thành tập dữ liệu rỗng, chẳng hạn như chuỗi trống. Để yêu cầu yêu cầu bao gồm ít nhất một giá trị, bạn phải sử dụng một điều kiện khác trong chính sách. Ví dụ, xemLogic đánh giá cho nhiều giá trị với toán tử tập điều kiệnPhần này thảo luận về các chi tiết cụ thể của logic đánh giá được sử dụng với các toán tử 4 và 5. Bảng sau đây minh họa các khóa có thể có trong một yêu cầu ( 4 và 3) và một điều kiện chính sách bao gồm các giá trị 4, 5 và 6Key (trong yêu cầu) Giá trị điều kiện (trong chính sách) 4 4 3 5 6Đánh giá cho sự kết hợp này là 4 trận đấu 4? 4 trận đấu 5? 4 trận đấu 6? 3 trận đấu 4? 3 trận đấu 5? 3 trận đấu 6?Kết quả của toán tử điều kiện phụ thuộc vào công cụ sửa đổi nào được sử dụng với điều kiện chính sách
Chính sách sau bao gồm một hạn định 4
Giả sử rằng người dùng yêu cầu DynamoDB lấy các thuộc tính 4 và 3. Đánh giá cho sự kết hợp này là 4 trận đấu 4? 38 4 trận đấu 5? 41 4 trận đấu 6? 41 3 trận đấu 4? 41 3 trận đấu 5? 41 3 trận đấu 6? 41Chính sách này bao gồm công cụ sửa đổi toán tử điều kiện 4, nghĩa là phải có ít nhất một kết quả khớp cho 4 và một kết quả khớp cho 3. Không có kết quả phù hợp cho 3, vì vậy toán tử điều kiện trả về giá trị sai và chính sách không cho phép yêu cầuChính sách sau bao gồm một hạn định 5
Lưu ý rằng chính sách bao gồm 59 và hành động là Condition 7. Hãy tưởng tượng rằng người dùng đưa ra một yêu cầu Condition 7 bao gồm các thuộc tính 3, 5 và 4. Đánh giá là thế này 3 trận đấu 2? 41 3 trận đấu 4? 41 71 trận đấu 2? 41 5 trận đấu 4? 41 4 trận đấu 2? 41 4 trận đấu 4? 38Với công cụ sửa đổi 5, nếu bất kỳ một trong các phép thử này trả về true, điều kiện sẽ trả về true. Thử nghiệm cuối cùng trả về true, vì vậy điều kiện là đúng; Nếu các giá trị chính trong yêu cầu phân giải thành tập dữ liệu trống, chẳng hạn như danh sách trống, thì toán tử điều kiện được sửa đổi bởi 4 sẽ trả về true. Toán tử điều kiện được sửa đổi bởi 5 trả về false
Làm cách nào để lọc một số khóa khỏi đối tượng trong JavaScript?Người dùng có thể sử dụng phương thức filter() cho mảng trong JavaScript chứ không phải cho đối tượng. Vì vậy, có các phương pháp thay thế để lọc đối tượng bằng các phím. Người dùng có thể sử dụng Đối tượng. keys() để lọc các đối tượng JavaScript, sử dụng hàm reduce() và tích lũy các khóa đã lọc .
Làm cách nào để lọc dữ liệu từ đối tượng trong JavaScript?Người ta có thể sử dụng hàm filter() trong JavaScript để lọc mảng đối tượng dựa trên các thuộc tính . Hàm filter() sẽ trả về một mảng mới chứa tất cả các phần tử của mảng thỏa mãn điều kiện đã cho. Nếu không có phần tử nào vượt qua điều kiện, nó sẽ trả về một mảng trống.
Cách chính xác để áp dụng nhiều bộ lọc trong JS là gì?Nếu bạn muốn đặt nhiều điều kiện vào bộ lọc, bạn có thể sử dụng && và. toán tử .
Khóa đối tượng có thể có nhiều giá trị không?Các đối tượng cho phép chúng tôi lưu trữ dữ liệu, truy cập giá trị và nhóm nhiều giá trị trong một khóa duy nhất ở dạng cặp khóa-giá trị , với các khóa đóng vai trò là chỉ số hoặc thuộc tính của . |