Mảng trong javascript không giống như mảng trong ngôn ngữ lập trình khác. Chúng chỉ là những đối tượng có một số tính năng bổ sung khiến chúng giống như một mảng
Chúng tôi khuyên rằng nếu chúng ta phải lưu trữ dữ liệu theo chuỗi số thì hãy sử dụng mảng, nếu không thì hãy sử dụng các đối tượng nếu có thể
Và để tạo một mảng kết hợp với một cặp giá trị khóa, chỉ có thể sử dụng các đối tượng
let obj = {}; obj['name'] = 'Prashant Yadav'; obj['website'] = 'learnersbucket.com'; obj['age'] = 24; obj['hobbies'] = ['writing', 'reading', 'teaching']; console.log[obj]; /* Object { age: 24 hobbies:["writing", "reading", "teaching"] name: "Prashant Yadav" website: "learnersbucket.com" } */
Có một cấu trúc dữ liệu sẵn có trong ES6 được gọi là Bản đồ có thể được sử dụng để lưu trữ dữ liệu cặp giá trị khóa
Lặp lại mảng giá trị khóa trong javascript
Chúng ta có thể sử dụng vòng lặp For…in để liệt kê các giá trị được lưu trữ
for[let key in obj]{ console.log[obj[key]]; } //"Prashant Yadav" //"learnersbucket.com" //24 //["writing", "reading", "teaching"]
Vì các đối tượng javascript có thể được mở rộng, nếu bạn chỉ muốn lặp lại các thuộc tính thuộc sở hữu của đối tượng thì chúng ta có thể hạn chế nó bằng phương thức hasOwnProperty[]
Phương thức keys[]
trả về một đối tượng Array Iterator mới chứa các khóa cho mỗi chỉ mục trong mảng
keys[]
Một đối tượng trình vòng lặp Array
mới
Khi được sử dụng trên , phương thức keys[]
lặp lại các vị trí trống như thể chúng có giá trị undefined
Phương pháp keys[]
là. Nó chỉ mong đợi giá trị this
có thuộc tính length
và thuộc tính có khóa số nguyên
Không giống như
const arr = ["a", , "c"];
const sparseKeys = Object.keys[arr];
const denseKeys = [...arr.keys[]];
console.log[sparseKeys]; // ['0', '2']
console.log[denseKeys]; // [0, 1, 2]
0, chỉ bao gồm các khóa thực sự tồn tại trong mảng, trình vòng lặp keys[]
không bỏ qua các lỗ đại diện cho các thuộc tính bị thiếuconst arr = ["a", , "c"];
const sparseKeys = Object.keys[arr];
const denseKeys = [...arr.keys[]];
console.log[sparseKeys]; // ['0', '2']
console.log[denseKeys]; // [0, 1, 2]
Phương thức keys[]
đọc thuộc tính length
của this
và sau đó trả về tất cả các chỉ số nguyên trong khoảng từ 0 đến
const arr = ["a", , "c"];
const sparseKeys = Object.keys[arr];
const denseKeys = [...arr.keys[]];
console.log[sparseKeys]; // ['0', '2']
console.log[denseKeys]; // [0, 1, 2]
5. Không có truy cập chỉ mục thực sự xảy ra Ghi chú. Bài viết này sẽ giả định rằng các khóa và giá trị được lưu trữ trong các mảng khác nhau và mục tiêu là lưu trữ chúng cùng nhau và định dạng chúng là “khóa => giá trị” trong khi tìm nạp
Phương pháp 1. Sử dụng các đối tượng để lưu trữ khóa => Mảng giá trị
Để minh họa phương pháp này, trước tiên hãy tạo một mảng khóa và một mảng giá trị với các dòng sau
var keysArray = ["Trung Quốc" , ", "Egypt", "Finland", "Greece"];
var valueArray = ["Bắc Kinh" , ", "Cairo", "Helsinki", "Athens"];
Sau đó, tạo một đối tượng JavaScript trống với dòng sau
resultObj = { } ;
Sau đó, chỉ cần sao chép các khóa và giá trị từ mảng của chúng và thêm chúng vào đối tượng bằng các dòng sau
for [ var i = 0 ; i < . chiều dài; ”
Để hiển thị chúng ở định dạng chính xác, hãy sử dụng các dòng mã sau
cho [ x đối tượng. phím [ resultObj ]] {
bảng điều khiển. log [ x + " => " + resultObj [x]];
}
Trong đoạn mã này
- Sự vật. keys[] phương thức trả về từng khóa của đối tượng trong đối số của nó. Các khóa đang được lưu trữ bên trong biến “x”
- Nối chuỗi được sử dụng để định dạng đầu ra của nhật ký bảng điều khiển dưới dạng “keys=>values”
Thực hiện chương trình bây giờ tạo ra kết quả sau
Đầu ra cho thấy các khóa không chỉ được lưu trữ cùng nhau mà còn được định dạng đúng cách
Phương pháp 2. Sử dụng Bản đồ để lưu trữ khóa => Mảng giá trị
Để minh họa việc sử dụng bản đồ để lưu trữ các khóa và giá trị tương ứng của chúng, hãy tạo hai mảng có khóa và giá trị bằng các dòng mã sau
var keysArray = ["Trung Quốc" , ", "Egypt", "Finland", "Greece"];
var valueArray = ["Bắc Kinh" , ", "Cairo", "Helsinki", "Athens"];
Bước tiếp theo là tạo một bản đồ, để tạo một biến này và đặt nó bằng với hàm tạo Map[] mới như
resultMap = bản đồ mới [] ;
Để thêm giá trị vào biến Bản đồ, có phương thức này mapVar. bộ[]. Sử dụng chức năng này để thêm các khóa và giá trị tương ứng của chúng
cho [ i = 0 ; i value” bằng cách sử dụng phép nối chuỗi đơn giản trong JavaScript