Sự khác biệt giữa mảng kết hợp và đối tượng trong JavaScript

Một mảng kết hợp chỉ đơn giản là một tập hợp các cặp giá trị chính. Khi chúng ta định nghĩa một đối tượng, JavaScript sẽ tự động tạo một mảng cho đối tượng này. Điều này cho phép chúng tôi tham khảo các chỉ số dữ liệu bằng cách sử dụng chuỗi

đó là giống như màu sắc. màu đỏ

Mảng kết hợp như đối tượng

Ý tưởng chính là mọi đối tượng Javascript là một mảng kết hợp, đây là loại mảng chung nhất mà bạn có thể phát minh ra, đôi khi đây được gọi là cấu trúc băm hoặc bản đồ hoặc đối tượng từ điển

Một mảng kết hợp được khai báo hoặc tạo động. Chúng ta có thể tạo nó bằng cách gán một chữ cho một biến

Không giống như các mảng đơn giản, chúng tôi sử dụng dấu ngoặc nhọn thay vì dấu ngoặc vuông. Ngoài ra, nội dung được truy cập bằng các phím, bất kể phương thức nào được sử dụng để khai báo mảng

Một mảng kết hợp JavaScript được coi là một tập hợp các khóa. Các khóa này được liên kết với các giá trị tương ứng của chúng theo cách sao cho khi khóa được chuyển đến mảng kết hợp, nó sẽ trả về giá trị tương ứng. Mảng kết hợp trong JavaScript được coi là Đối tượng, không phải mảng bình thường; . Bài viết này đã giải thích các mảng kết hợp JavaScript

Trong blog này, chúng ta sẽ tìm hiểu mảng kết hợp là gì, nó khác với mảng bình thường như thế nào và cách tính độ dài của nó cũng như truy xuất tất cả các phần tử

Mục lục

  • Một mảng kết hợp là gì?
  • Cú pháp & ví dụ
  • Độ dài của một mảng kết hợp
  • Truy xuất các phần tử của một mảng kết hợp
  • Nó khác với một mảng bình thường như thế nào?

Một mảng kết hợp là gì?

Mảng kết hợp về cơ bản là các đối tượng trong JavaScript nơi các chỉ mục được thay thế bằng các khóa do người dùng xác định. Chúng không có thuộc tính độ dài như một mảng bình thường và không thể duyệt qua bằng cách sử dụng vòng lặp for thông thường. Tham khảo thêm về vòng lặp qua một mảng kết hợp trong blog này

Cú pháp và ví dụ

var arr = {key1:'value1', key2:'value2'}

Ở đây, arr, là một mảng kết hợp với key1, key2 là các khóa hoặc chỉ mục chuỗi của nó và value1 & value 2 là các phần tử của nó

var arr = { "Company Name": ‘Flexiple’, "ID": 123}; 

Độ dài của một mảng kết hợp

Bây giờ chúng ta đã biết cách khai báo một mảng kết hợp, hãy xem cách chúng ta có thể tính độ dài của nó

Vì chúng ta sẽ không thể sử dụng thuộc tính độ dài của đối tượng Array nữa, trước tiên chúng ta hãy định nghĩa một phương thức trả về kích thước của mảng trước khi chúng ta sử dụng nó

Object.size = function[arr] {
    var size = 0;
    for [var key in arr] {
        if [arr.hasOwnProperty[key]] size++;
    }
    return size;
};

Tham khảo bài viết này để biết thêm về hasownproperty

Bây giờ chúng ta đã định nghĩa phương thức kích thước, hãy sử dụng nó

var len = Object.size[x];
document.write["Length=" + len];

//Output: Length = 2

Sử dụng phương pháp phím

Phương thức keys trả về một mảng gồm tất cả các thuộc tính, vì vậy sử dụng phương thức này, chúng ta có thể áp dụng thuộc tính độ dài của Array

//Using the previous arr array
document.write["Length=" + Object.keys[arr].length

//Output: Length = 2

Truy xuất các phần tử

Để truy xuất tất cả các phần tử của một mảng kết hợp, không thể sử dụng một vòng lặp đơn giản như trong trường hợp của một mảng bình thường vì các phần tử không thể truy cập được bằng một chỉ số. Đây là cách chúng ta có thể làm thay thế

var arr = {
    "Company Name": 'Flexiple',
    "ID": 123
};
for [var key in arr] {
    var value = arr[key];
    document.write[key + " = " + value + '
']; } //Output: Company Name = Flexiple ID = 123

Sử dụng phương pháp phím

Chúng ta có thể chuyển đổi một mảng kết hợp, tức là một đối tượng, thành một mảng đơn giản. Với phương thức trả về danh sách khóa và phương thức bản đồ [ECMAScript 1. 6], chúng tôi cũng thu được các giá trị

Bạn có thể thấy ở phần trên bạn không thể khóa một mảng javascript với các giá trị ngẫu nhiên mà không có hàm tạo mảng đặt các khóa bị thiếu ở dạng null. Về cơ bản, điều này hợp lý nếu bạn xem xét cách các mảng được lưu trữ trong bộ nhớ, sẽ rất lộn xộn nếu bạn cố lưu trữ các khóa ngẫu nhiên. Vì vậy, trong một số trường hợp, tốt hơn hết bạn nên sử dụng một đối tượng javascript theo đúng nghĩa đen và gõ nó giống như cách bạn làm với mảng. Bằng cách này, bạn chỉ cần phân tích cú pháp các mục được lưu trữ chứ không phải các khóa bị thiếu

JavaScript không có mảng kết hợp, chỉ có các đối tượng. Có hai dạng đối tượng, nghĩa đen và hàm tạo. Để truy cập và gán các thuộc tính, có hai dạng ký hiệu, ký hiệu dấu chấm và ký hiệu dấu ngoặc

var obj;
obj = {};

Ở trên là một đối tượng theo nghĩa đen. Chúng ta có thể mở rộng nó hơn nữa,

obj = {
    name: "JavaScript",
    version: "1.6"
}

Chúng ta có thể truy cập các thuộc tính như vậy,

________số 8

Một hàm tạo đối tượng có thể trông như thế này

function Language[name, version]{
    this.name = name;
    this.version = version;
}

Chúng tôi sẽ mở rộng nguyên mẫu của Ngôn ngữ để bao gồm một phương thức cho phép chúng tôi kiểm tra tất cả các thuộc tính trong đối tượng thể hiện

var arr = { "Company Name": ‘Flexiple’, "ID": 123}; 
0

Bây giờ chúng ta có thể gọi hàm tạo để quay một đối tượng mới sẽ kế thừa nguyên mẫu của hàm tạo

var arr = { "Company Name": ‘Flexiple’, "ID": 123}; 
1

Chơi với cái này trong phòng thí nghiệm. Trình diễn trình tạo đối tượng

Tôi biết điều này không trả lời câu hỏi của bạn. Không có câu trả lời thực sự vì như tôi đã đề cập ở trên, không có mảng kết hợp nào trong JS. Tiếp tục đặt câu hỏi như thế này và bạn sẽ hiểu

Sự khác biệt giữa mảng và đối tượng trong JavaScript là gì?

Cả đối tượng và mảng đều được coi là "đặc biệt" trong JavaScript. Các đối tượng đại diện cho một loại dữ liệu đặc biệt có thể thay đổi và có thể được sử dụng để lưu trữ một tập hợp dữ liệu [chứ không chỉ là một giá trị]. Mảng là một loại biến đặc biệt cũng có thể thay đổi và cũng có thể được sử dụng để lưu trữ danh sách các giá trị

Đối tượng JavaScript có phải là một mảng kết hợp không?

Mặc dù rõ ràng mảng là đối tượng JavaScript, nhưng JavaScript cũng cho phép truy cập đối tượng và thuộc tính của chúng như thể chúng là mảng . Các mảng JavaScript bình thường lập chỉ mục các giá trị của chúng theo thứ tự sử dụng các chỉ số nguyên.

Sự khác biệt giữa một mảng và một mảng kết hợp là gì?

Kiểu dữ liệu chỉ mục cho một mảng đơn giản phải là một giá trị số nguyên. Loại chỉ mục cho mảng kết hợp có thể là một trong các loại dữ liệu được hỗ trợ . Các giá trị chỉ mục trong một mảng đơn giản phải là một tập hợp các giá trị số nguyên liền kề. Trong một mảng kết hợp, các giá trị chỉ mục có thể thưa thớt.

Mảng kết hợp trong JavaScript là gì?

Mảng kết hợp về cơ bản là đối tượng trong JavaScript trong đó chỉ mục được thay thế bằng khóa do người dùng xác định . Chúng không có thuộc tính độ dài như mảng bình thường và không thể duyệt qua vòng lặp for thông thường.

Chủ Đề