Mảng có thể có giá trị khóa JavaScript không?

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ếu

const 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; < keysArray.length; i++) {
  resultObj [ keysArray [ i ]] = valuesArray[i];
}

Trong đoạn mã trên

  • Một vòng lặp for được chạy và số lần lặp của nó bằng với số phần tử bên trong mảng keys
  • Trong mỗi lần lặp lại, một thuộc tính thuộc tính mới của đối tượng được tạo và nó được đặt tên bằng với phần tử bên trong mảng khóa và giá trị tương ứng của nó từ mảng giá trị bằng cách sử dụng cùng các giá trị chỉ mục

Sau đó, chuyển resultObj cho chức năng nhật ký giao diện điều khiển để in nó ra trên thiết bị đầu cuối

bảng điều khiển. log ( resultObj ) ;

Thực thi mã sẽ cung cấp đầu ra sau

Mảng có thể có giá trị khóa JavaScript không?

Các khóa và giá trị được lưu trữ cùng nhau, nhưng chúng vẫn không ở định dạng “khóa =>”
Để 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

Mảng có thể có giá trị khóa JavaScript không?

Đầ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 < keysArray.length; i++) {
  Bản đồ kết quả. đặt ( keysArray [ i ], valuesArray[i]);
}

Trong đoạn mã được đề cập ở trên

  • Một vòng lặp for được sử dụng để lặp qua keysArray và valueArray bằng cách sử dụng độ dài của keysArray
  • Trong mỗi lần lặp, resultMap. phương thức set() được sử dụng để lưu trữ cặp khóa và giá trị trong bản đồ

Sau này, chỉ cần chuyển biến resultMap vào thiết bị đầu cuối bằng cách sử dụng chức năng nhật ký bảng điều khiển

bảng điều khiển. nhật ký ( Bản đồ kết quả ) ;

Mã này sẽ tạo ra đầu ra sau

Mảng có thể có giá trị khóa JavaScript không?

Nó có định dạng phù hợp, nhưng nó bao gồm một ít thông tin bổ sung. Để định dạng chính xác nó, hãy sử dụng các dòng sau

for ( key của resultMap. phím ()) {
  bảng điều khiển. log ( key + " => " + resultMap. lấy ( phím ));
}

Trong đoạn mã này

  • bản đồ kết quả. keys() phương thức trả về các khóa của bản đồ từng cái một cho biến khóa
  • bản đồ kết quả. phương thức get() được sử dụng để lấy giá trị của một khóa cụ thể
  • Và trong chức năng nhật ký bảng điều khiển, nối chuỗi được sử dụng để định dạng chính xác đầu ra

Thực thi mã hiện tạo đầu ra sau trên thiết bị đầu cuối

Mảng có thể có giá trị khóa JavaScript không?

Đầ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ần kết luận

Trong JavaScript, Đối tượng và Bản đồ là hai thành phần phù hợp nhất để lưu trữ các cặp khóa và giá trị, ngay cả khi nhiệm vụ hiện tại là lấy khóa và giá trị từ các mảng riêng lẻ và đặt chúng vào trong một thực thể duy nhất. Sau đó, bất cứ khi nào người dùng cố lấy các khóa và giá trị tương ứng của chúng, chúng có thể dễ dàng được định dạng ở định dạng “key => value” bằng cách sử dụng phép nối chuỗi đơn giản trong JavaScript

Làm cách nào để đặt giá trị khóa trong mảng JavaScript?

Cách tạo mảng giá trị khóa trong javascript .
cho obj = {}; . com'; . .
for(let key in obj){ console. .
for(let key in obj){ if(obj

Làm cách nào để thêm giá trị khóa vào mảng đối tượng JavaScript?

Để thêm cặp khóa/giá trị vào đối tượng JavaScript, Chúng tôi sử dụng ký hiệu dấu chấm hoặc ký hiệu dấu ngoặc vuông . Cả hai phương pháp đều được chấp nhận rộng rãi.

Làm cách nào để tạo một mảng với các cặp giá trị chính trong JavaScript?

const arr = [ {"tên". "Rahul", "ghi bàn". 89}, {"tên". "Vivek", "ghi điểm". 88}, {"tên". "Rakesh", "ghi điểm". 75}, {"tên". "Sourav", "ghi điểm". 82}, {"tên". "Gautam", "điểm số". 91}, {"tên". "Sunil", "ghi bàn". 79}, ];

Làm cách nào để kiểm tra xem mảng có chứa giá trị khóa trong JavaScript không?

Mảng JavaScript gồm() . Phương thức include() trả về false nếu không tìm thấy giá trị.