Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?

Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?

Trung bình tôi làm việc với dữ liệu JSON 18 lần một tuần. Và tôi vẫn cần google để biết những cách cụ thể để thao túng chúng gần như mọi lúc. Điều gì sẽ xảy ra nếu có một hướng dẫn cuối cùng luôn có thể cung cấp cho bạn câu trả lời?

Trong bài viết này, tôi sẽ chỉ cho bạn những điều cơ bản khi làm việc với các mảng đối tượng trong JavaScript.

Nếu bạn đã từng làm việc với cấu trúc JSON, bạn đã làm việc với các đối tượng JavaScript. Theo đúng nghĩa đen. JSON là viết tắt của ký hiệu đối tượng JavaScript.

Tạo một đối tượng đơn giản như thế này:

{
  "color": "purple",
  "type": "minivan",
  "registration": new Date('2012-02-03'),
  "capacity": 7
}

Đối tượng này đại diện cho một chiếc xe. Có thể có nhiều loại và màu sắc của xe hơi, mỗi đối tượng sau đó đại diện cho một chiếc xe cụ thể.

Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?

Bây giờ, hầu hết thời gian bạn nhận được dữ liệu như thế này từ một dịch vụ bên ngoài. Nhưng đôi khi bạn cần tạo các đối tượng và mảng của chúng theo cách thủ công. Giống như tôi đã làm khi tôi đang tạo cửa hàng điện tử này:

Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?

Xem xét từng mục danh sách danh mục trông giống như thế này trong HTML:

Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?

Tôi không muốn lặp lại mã này 12 lần, điều này sẽ khiến nó không thể chịu đựng được.

Tạo một mảng các đối tượng

Nhưng chúng ta hãy trở lại xe hơi. Hãy xem bộ xe này:

Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?

Chúng ta có thể đại diện cho nó như một mảng theo cách này:

let cars = [
  {
    "color": "purple",
    "type": "minivan",
    "registration": new Date('2017-01-03'),
    "capacity": 7
  },
  {
    "color": "red",
    "type": "station wagon",
    "registration": new Date('2018-03-03'),
    "capacity": 5
  },
  {
    ...
  },
  ...
]

Mảng các đối tượng không giữ nguyên mọi lúc. Chúng ta hầu như luôn cần phải thao túng chúng. Vì vậy, chúng ta hãy xem làm thế nào chúng ta có thể thêm các đối tượng vào một mảng đã tồn tại.

Thêm một đối tượng mới khi bắt đầu - Array.unshift

Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?

Để thêm một đối tượng ở vị trí đầu tiên, hãy sử dụng

let cars = [
  {
    "color": "purple",
    "type": "minivan",
    "registration": new Date('2017-01-03'),
    "capacity": 7
  },
  {
    "color": "red",
    "type": "station wagon",
    "registration": new Date('2018-03-03'),
    "capacity": 5
  },
  {
    ...
  },
  ...
]
4.

let car = {
  "color": "red",
  "type": "cabrio",
  "registration": new Date('2016-05-02'),
  "capacity": 2
}
cars.unshift(car);

Thêm một đối tượng mới ở cuối - mảng.push

Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?

Để thêm một đối tượng ở vị trí cuối cùng, hãy sử dụng

let cars = [
  {
    "color": "purple",
    "type": "minivan",
    "registration": new Date('2017-01-03'),
    "capacity": 7
  },
  {
    "color": "red",
    "type": "station wagon",
    "registration": new Date('2018-03-03'),
    "capacity": 5
  },
  {
    ...
  },
  ...
]
5.

let car = {
 "color": "red",
 "type": "cabrio",
 "registration": new Date('2016-05-02'),
 "capacity": 2
}
cars.push(car);

Thêm một đối tượng mới ở giữa - mảng.splice

Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?

Để thêm một đối tượng ở giữa, hãy sử dụng

let cars = [
  {
    "color": "purple",
    "type": "minivan",
    "registration": new Date('2017-01-03'),
    "capacity": 7
  },
  {
    "color": "red",
    "type": "station wagon",
    "registration": new Date('2018-03-03'),
    "capacity": 5
  },
  {
    ...
  },
  ...
]
6. Chức năng này rất tiện dụng vì nó cũng có thể loại bỏ các mục. Xem ra các tham số của nó:

Array.splice(
  {index where to start},
  {how many items to remove},
  {items to add}
);

Vì vậy, nếu chúng tôi muốn thêm Red Volkswagen Cabrio ở vị trí thứ năm, chúng tôi sẽ sử dụng:

let car = {
  "color": "red",
  "type": "cabrio",
  "registration": new Date('2016-05-02'),
  "capacity": 2
}
cars.splice(4, 0, car);

Lặp qua một mảng các đối tượng

Hãy để tôi hỏi bạn một câu hỏi ở đây: Tại sao bạn muốn lặp qua một loạt các đối tượng? Lý do tôi hỏi là vòng lặp gần như không bao giờ là nguyên nhân chính của những gì chúng ta muốn đạt được.

JavaScript cung cấp nhiều chức năng có thể giải quyết vấn đề của bạn mà không thực sự thực hiện logic trong một chu kỳ chung. Hãy xem xét.

Tìm một đối tượng trong một mảng theo các giá trị của nó - mảng.find

Giả sử chúng tôi muốn tìm một chiếc xe màu đỏ. Chúng ta có thể sử dụng hàm

let cars = [
  {
    "color": "purple",
    "type": "minivan",
    "registration": new Date('2017-01-03'),
    "capacity": 7
  },
  {
    "color": "red",
    "type": "station wagon",
    "registration": new Date('2018-03-03'),
    "capacity": 5
  },
  {
    ...
  },
  ...
]
7.

Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?
let car = cars.find(car => car.color === "red");

Hàm này trả về phần tử khớp đầu tiên:

console.log(car);
// output:
// {
//   color: 'red',
//   type: 'station wagon',
//   registration: 'Sat Mar 03 2018 01:00:00 GMT+0100 (GMT+01:00)',
//   capacity: 5
// }

Cũng có thể tìm kiếm nhiều giá trị:

let cars = [
  {
    "color": "purple",
    "type": "minivan",
    "registration": new Date('2017-01-03'),
    "capacity": 7
  },
  {
    "color": "red",
    "type": "station wagon",
    "registration": new Date('2018-03-03'),
    "capacity": 5
  },
  {
    ...
  },
  ...
]
8

Trong trường hợp đó, chúng tôi sẽ nhận được chiếc xe cuối cùng trong danh sách.

Nhận nhiều mục từ một mảng phù hợp với điều kiện - mảng.filter

Hàm

let cars = [
  {
    "color": "purple",
    "type": "minivan",
    "registration": new Date('2017-01-03'),
    "capacity": 7
  },
  {
    "color": "red",
    "type": "station wagon",
    "registration": new Date('2018-03-03'),
    "capacity": 5
  },
  {
    ...
  },
  ...
]
7 chỉ trả về một đối tượng. Nếu chúng ta muốn có được tất cả những chiếc xe màu đỏ, chúng ta cần sử dụng
let car = {
  "color": "red",
  "type": "cabrio",
  "registration": new Date('2016-05-02'),
  "capacity": 2
}
cars.unshift(car);
0.

Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?
let redCars = cars.filter(car => car.color === "red");
console.log(redCars);
// output:
// [
//   {
//     color: 'red',
//     type: 'station wagon',
//     registration: 'Sat Mar 03 2018 01:00:00 GMT+0100 (GMT+01:00)',
//     capacity: 5
//   },
//   {
//     color: 'red',
//     type: 'cabrio',
//     registration: 'Sat Mar 03 2012 01:00:00 GMT+0100 (GMT+01:00)',
//     capacity: 2
//   }
// ]

Biến đổi các đối tượng của một mảng - mảng.map

Đây là một cái gì đó chúng ta cần rất thường xuyên. Chuyển đổi một mảng các đối tượng thành một mảng các đối tượng khác nhau. Đó là một công việc cho

let car = {
  "color": "red",
  "type": "cabrio",
  "registration": new Date('2016-05-02'),
  "capacity": 2
}
cars.unshift(car);
1. Giả sử chúng tôi muốn phân loại xe của chúng tôi thành ba nhóm dựa trên kích thước của chúng.

Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?
let sizes = cars.map(car => {
  if (car.capacity <= 3){
    return "small";
  }
  if (car.capacity <= 5){
    return "medium";
  }
  return "large";
});
console.log(sizes);
// output:
// ['large','medium','medium', ..., 'small']

Cũng có thể tạo một đối tượng mới nếu chúng ta cần thêm các giá trị:

let cars = [
  {
    "color": "purple",
    "type": "minivan",
    "registration": new Date('2017-01-03'),
    "capacity": 7
  },
  {
    "color": "red",
    "type": "station wagon",
    "registration": new Date('2018-03-03'),
    "capacity": 5
  },
  {
    ...
  },
  ...
]
0

Thêm một thuộc tính vào mọi đối tượng của một mảng - mảng.foreach

Nhưng nếu chúng ta muốn kích thước xe quá? Trong trường hợp đó, chúng tôi có thể tăng cường đối tượng cho một thuộc tính mới

let car = {
  "color": "red",
  "type": "cabrio",
  "registration": new Date('2016-05-02'),
  "capacity": 2
}
cars.unshift(car);
2. Đây là một trường hợp sử dụng tốt cho chức năng
let car = {
  "color": "red",
  "type": "cabrio",
  "registration": new Date('2016-05-02'),
  "capacity": 2
}
cars.unshift(car);
3.

let cars = [
  {
    "color": "purple",
    "type": "minivan",
    "registration": new Date('2017-01-03'),
    "capacity": 7
  },
  {
    "color": "red",
    "type": "station wagon",
    "registration": new Date('2018-03-03'),
    "capacity": 5
  },
  {
    ...
  },
  ...
]
1

Sắp xếp một mảng bằng một thuộc tính - mảng.sort

Khi chúng ta hoàn thành việc chuyển đổi các đối tượng, chúng ta thường cần sắp xếp chúng theo cách này hay cách khác.

Thông thường, việc sắp xếp dựa trên giá trị của một thuộc tính mà mỗi đối tượng có. Chúng ta có thể sử dụng hàm

let car = {
  "color": "red",
  "type": "cabrio",
  "registration": new Date('2016-05-02'),
  "capacity": 2
}
cars.unshift(car);
4, nhưng chúng ta cần cung cấp một hàm xác định cơ chế sắp xếp.

Giả sử chúng tôi muốn sắp xếp những chiếc xe dựa trên năng lực của chúng theo thứ tự giảm dần.

Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?
let cars = [
  {
    "color": "purple",
    "type": "minivan",
    "registration": new Date('2017-01-03'),
    "capacity": 7
  },
  {
    "color": "red",
    "type": "station wagon",
    "registration": new Date('2018-03-03'),
    "capacity": 5
  },
  {
    ...
  },
  ...
]
2

let car = {
  "color": "red",
  "type": "cabrio",
  "registration": new Date('2016-05-02'),
  "capacity": 2
}
cars.unshift(car);
4 so sánh hai đối tượng và đặt đối tượng đầu tiên vào vị trí thứ hai nếu kết quả của hàm sắp xếp là dương. Vì vậy, bạn có thể nhìn vào chức năng sắp xếp như thể đó là một câu hỏi: đối tượng đầu tiên có nên được đặt ở vị trí thứ hai không?

Hướng dẫn how can we use array of objects in javascript? - làm cách nào chúng ta có thể sử dụng mảng đối tượng trong javascript?

Đảm bảo luôn luôn thêm trường hợp cho 0 khi giá trị so sánh của cả hai đối tượng là giống nhau để tránh các giao dịch hoán đổi không cần thiết.

Kiểm tra xem các đối tượng trong Array đáp ứng điều kiện - Array. Mọi người, Array.includes

let car = {
  "color": "red",
  "type": "cabrio",
  "registration": new Date('2016-05-02'),
  "capacity": 2
}
cars.unshift(car);
6 và
let car = {
  "color": "red",
  "type": "cabrio",
  "registration": new Date('2016-05-02'),
  "capacity": 2
}
cars.unshift(car);
7 có ích khi chúng ta chỉ cần kiểm tra từng đối tượng cho một điều kiện cụ thể.

Chúng ta có một chiếc Cabrio màu đỏ trong danh sách xe hơi không? Có phải tất cả những chiếc xe có khả năng vận chuyển ít nhất 4 người? Hoặc nhiều hơn trung tâm web: Có một sản phẩm cụ thể trong giỏ hàng không?

let cars = [
  {
    "color": "purple",
    "type": "minivan",
    "registration": new Date('2017-01-03'),
    "capacity": 7
  },
  {
    "color": "red",
    "type": "station wagon",
    "registration": new Date('2018-03-03'),
    "capacity": 5
  },
  {
    ...
  },
  ...
]
3

Bạn có thể nhớ hàm

let car = {
  "color": "red",
  "type": "cabrio",
  "registration": new Date('2016-05-02'),
  "capacity": 2
}
cars.unshift(car);
8 tương tự như
let car = {
  "color": "red",
  "type": "cabrio",
  "registration": new Date('2016-05-02'),
  "capacity": 2
}
cars.unshift(car);
7, nhưng chỉ hoạt động cho các loại nguyên thủy.

Bản tóm tắt

Trong bài viết này, chúng tôi đã trải qua các chức năng cơ bản giúp bạn tạo, thao tác, biến đổi và lặp qua các mảng của các đối tượng. Họ nên bao gồm hầu hết các trường hợp bạn sẽ vấp ngã.

Nếu bạn có một trường hợp sử dụng yêu cầu chức năng nâng cao hơn, hãy xem hướng dẫn chi tiết này về mảng hoặc truy cập tham chiếu của các trường W3.

Hoặc liên lạc với tôi và tôi sẽ chuẩn bị một bài viết khác :-)



Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Bạn có thể có một mảng các đối tượng trong JavaScript không?

Các biến JavaScript có thể là đối tượng. Mảng là các loại đối tượng đặc biệt. Bởi vì điều này, bạn có thể có các biến các loại khác nhau trong cùng một mảng.Arrays are special kinds of objects. Because of this, you can have variables of different types in the same Array.

Làm thế nào tôi có thể truy cập mảng các đối tượng trong JavaScript?

Cấu trúc dữ liệu lồng nhau là một mảng hoặc đối tượng đề cập đến các mảng hoặc đối tượng khác, tức là các giá trị của nó là mảng hoặc đối tượng.Các cấu trúc như vậy có thể được truy cập bằng cách áp dụng liên tiếp ký hiệu dấu chấm hoặc khung.Dưới đây là một ví dụ: const data = {code: 42, các mục: [{id: 1, tên: 'foo'}, {id: 2, name: 'Bar'}]};consecutively applying dot or bracket notation. Here is an example: const data = { code: 42, items: [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }] };

Việc sử dụng đối tượng mảng trong JavaScript là gì?

Đối tượng mảng cho phép bạn lưu trữ nhiều giá trị trong một biến duy nhất.Nó lưu trữ một bộ sưu tập tuần tự có kích thước cố định của các yếu tố cùng loại.Một mảng được sử dụng để lưu trữ một bộ sưu tập dữ liệu, nhưng thường hữu ích hơn khi nghĩ về một mảng như một tập hợp các biến cùng loại.lets you store multiple values in a single variable. It stores a fixed-size sequential collection of elements of the same type. An array is used to store a collection of data, but it is often more useful to think of an array as a collection of variables of the same type.

{} Và [] trong javascript là gì?

{} là tốc ký để tạo một đối tượng trống.Bạn có thể coi đây là cơ sở cho các loại đối tượng khác.Đối tượng cung cấp liên kết cuối cùng trong chuỗi nguyên mẫu có thể được sử dụng bởi tất cả các đối tượng khác, chẳng hạn như một mảng.[] là tốc ký để tạo ra một mảng trống.. You can consider this as the base for other object types. Object provides the last link in the prototype chain that can be used by all other objects, such as an Array . [] is shorthand for creating an empty array.