Đối tượng
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
9, giống như mảng trong các ngôn ngữ lập trình khác, cho phép lưu trữ một tập hợp nhiều mục dưới một tên biến duy nhất và có các thành viên choTrong JavaScript, các mảng không phải là nguyên thủy mà thay vào đó là các đối tượng
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
9 với các đặc điểm cốt lõi sau- Mảng JavaScript có thể thay đổi kích thước và có thể chứa kết hợp các loại dữ liệu khác nhau. [Khi những đặc điểm đó là không mong muốn, thay vào đó hãy sử dụng các mảng đã nhập. ]
- Mảng JavaScript không phải là mảng kết hợp và do đó, không thể truy cập các phần tử mảng bằng cách sử dụng chuỗi tùy ý làm chỉ mục mà phải được truy cập bằng cách sử dụng số nguyên không âm [hoặc dạng chuỗi tương ứng của chúng] làm chỉ mục
- Các mảng JavaScript không được lập chỉ mục. phần tử đầu tiên của một mảng nằm ở chỉ mục
1, phần tử thứ hai ở chỉ mụcfruits.length = 10; console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4] console.log[Object.keys[fruits]]; // ['0', '1', '2', '5'] console.log[fruits.length]; // 10 console.log[fruits[8]]; // undefined
2, v.v. — và phần tử cuối cùng ở giá trị của thuộc tínhfruits.length = 10; console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4] console.log[Object.keys[fruits]]; // ['0', '1', '2', '5'] console.log[fruits.length]; // 10 console.log[fruits[8]]; // undefined
3 của mảng trừ đifruits.length = 10; console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4] console.log[Object.keys[fruits]]; // ['0', '1', '2', '5'] console.log[fruits.length]; // 10 console.log[fruits[8]]; // undefined
2fruits.length = 10; console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4] console.log[Object.keys[fruits]]; // ['0', '1', '2', '5'] console.log[fruits.length]; // 10 console.log[fruits[8]]; // undefined
- JavaScript tạo bản sao nông. [Tất cả các thao tác sao chép tích hợp sẵn tiêu chuẩn với bất kỳ đối tượng JavaScript nào đều tạo ra các bản sao nông, thay vì các bản sao sâu]
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
9 các đối tượng không thể sử dụng các chuỗi tùy ý làm chỉ mục phần tử [như trong một mảng kết hợp] mà phải sử dụng các số nguyên không âm [hoặc dạng chuỗi tương ứng của chúng]. Việc đặt hoặc truy cập thông qua các số không phải là số nguyên sẽ không đặt hoặc truy xuất một phần tử từ chính danh sách mảng, nhưng sẽ đặt hoặc truy cập một biến được liên kết với mảng đó. Các thuộc tính đối tượng của mảng và danh sách các phần tử mảng là riêng biệt và không thể áp dụng các thuộc tính của mảng cho các thuộc tính đã đặt tên nàyCác phần tử mảng là các thuộc tính của đối tượng giống như cách mà
fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
6 là một thuộc tính [tuy nhiên, để cụ thể, fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
7 là một phương thức]. Tuy nhiên, cố gắng truy cập một phần tử của mảng như sau sẽ gây ra lỗi cú pháp vì tên thuộc tính không hợp lệconsole.log[arr.0]; // a syntax error
Cú pháp JavaScript yêu cầu các thuộc tính bắt đầu bằng một chữ số được truy cập bằng cách sử dụng thay vì ký hiệu dấu chấm. Cũng có thể trích dẫn các chỉ số mảng [e. g. ,
fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
8 thay vì fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
9], mặc dù thường không cần thiếtfruits.length = 2;
console.log[Object.keys[fruits]]; // ['0', '1']
console.log[fruits.length]; // 2
0 trong fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
9 được công cụ JavaScript ép buộc thành một chuỗi thông qua chuyển đổi ngầm định fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
6. Kết quả là, fruits.length = 2;
console.log[Object.keys[fruits]]; // ['0', '1']
console.log[fruits.length]; // 2
3 và fruits.length = 2;
console.log[Object.keys[fruits]]; // ['0', '1']
console.log[fruits.length]; // 2
4 sẽ đề cập đến hai vị trí khác nhau trên đối tượng fruits.length = 2;
console.log[Object.keys[fruits]]; // ['0', '1']
console.log[fruits.length]; // 2
5 và ví dụ sau đây có thể là fruits.length = 2;
console.log[Object.keys[fruits]]; // ['0', '1']
console.log[fruits.length]; // 2
6console.log[years["2"] !== years["02"]];
Chỉ
fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
8 là một chỉ số mảng thực tế. fruits.length = 2;
console.log[Object.keys[fruits]]; // ['0', '1']
console.log[fruits.length]; // 2
8 là một thuộc tính chuỗi tùy ý sẽ không được truy cập trong phép lặp mảngThuộc tính
fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 và thuộc tính số của một mảng JavaScript được kết nốiMột số phương thức mảng tích hợp sẵn [e. g. ,
method[callbackFn, thisArg]
0, method[callbackFn, thisArg]
1, method[callbackFn, thisArg]
2, v.v. ] tính đến giá trị của thuộc tính fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 của một mảng khi chúng được gọiCác phương pháp khác [e. g. ,
method[callbackFn, thisArg]
4, method[callbackFn, thisArg]
5, v.v. ] cũng dẫn đến việc cập nhật thuộc tính fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 của một mảngconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
Khi đặt thuộc tính trên mảng JavaScript khi thuộc tính là chỉ mục mảng hợp lệ và chỉ mục đó nằm ngoài giới hạn hiện tại của mảng, công cụ sẽ cập nhật thuộc tính
fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 của mảng tương ứngfruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
Tăng
fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
Tuy nhiên, việc giảm thuộc tính
fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 sẽ xóa các phần tửfruits.length = 2;
console.log[Object.keys[fruits]]; // ['0', '1']
console.log[fruits.length]; // 2
Điều này được giải thích thêm trên trang
const arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
0Các vị trí trống hoạt động không nhất quán giữa các phương thức mảng. Nói chung, các phương thức cũ hơn sẽ bỏ qua các vị trí trống, trong khi các phương thức mới hơn coi chúng là
const arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
1Trong số các phương thức lặp qua nhiều phần tử, các phương thức sau đây thực hiện kiểm tra
const arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
2 trước khi truy cập chỉ mục và không kết hợp các vị trí trống với const arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
1
4const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
5const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
6const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
7const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
8const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
9const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
0Array.prototype.flat.call[{}]; // []
2method[callbackFn, thisArg]
2Array.prototype.flat.call[{}]; // []
3Array.prototype.flat.call[{}]; // []
4Array.prototype.flat.call[{}]; // []
5Array.prototype.flat.call[{}]; // []
6Array.prototype.flat.call[{}]; // []
1method[callbackFn, thisArg]
8Array.prototype.flat.call[{}]; // []
9Array.prototype.flat.call[{}]; // []
5method[callbackFn, thisArg]
Để biết chính xác cách họ xử lý các vị trí trống, hãy xem trang cho từng phương pháp
Các phương pháp này xử lý các vị trí trống như thể chúng là
const arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
1
2const a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
3const a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
4const a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
5const a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
6const a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
7const a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
8 Thử nghiệmconst a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
9 Thử nghiệmconst a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
00console.log[years["2"] !== years["02"]];
0method[callbackFn, thisArg]
02console.log[years["2"] !== years["02"]];
03console.log[years["2"] !== years["02"]];
04console.log[years["2"] !== years["02"]];
Một số phương thức không thay đổi mảng hiện có mà phương thức được gọi, mà thay vào đó trả về một mảng mới. Họ làm như vậy bằng cách truy cập đầu tiên vào
console.log[years["2"] !== years["02"]];
05 để xác định hàm tạo sẽ sử dụng cho mảng mới. Mảng mới được xây dựng sau đó được phổ biến với các phần tử. Sao chép luôn xảy ra một cách nông cạn — phương thức không bao giờ sao chép bất kỳ thứ gì ngoài mảng được tạo ban đầu. Các phần tử của [các] mảng ban đầu được sao chép vào mảng mới như sau- Các đối tượng. tham chiếu đối tượng được sao chép vào mảng mới. Cả mảng ban đầu và mảng mới đều đề cập đến cùng một đối tượng. Nghĩa là, nếu một đối tượng được tham chiếu được sửa đổi, các thay đổi sẽ hiển thị đối với cả mảng mới và mảng ban đầu
- Các loại nguyên thủy như chuỗi, số và booleans [không phải đối tượng
06,console.log[years["2"] !== years["02"]];
07 vàconsole.log[years["2"] !== years["02"]];
08]. giá trị của chúng được sao chép vào mảng mớiconsole.log[years["2"] !== years["02"]];
Các phương thức khác thay đổi mảng mà phương thức được gọi, trong trường hợp đó, giá trị trả về của chúng sẽ khác nhau tùy thuộc vào phương thức. đôi khi là tham chiếu đến cùng một mảng, đôi khi là độ dài của mảng mới
Các phương pháp sau tạo mảng mới với
console.log[years["2"] !== years["02"]];
09
4const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
7const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
8const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
9const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
3Array.prototype.flat.call[{}]; // []
1method[callbackFn, thisArg]
5 [để xây dựng mảng các phần tử đã loại bỏ được trả về]method[callbackFn, thisArg]
Lưu ý rằng
const a = { length: 0.7 };
Array.prototype.push.call[a];
console.log[a.length]; // 0
8 và const a = { length: 0.7 };
Array.prototype.push.call[a];
console.log[a.length]; // 0
9 không sử dụng console.log[years["2"] !== years["02"]];
09 để tạo mảng mới cho mỗi mục nhập nhóm mà luôn sử dụng hàm tạo fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
9 đơn giản. Về mặt khái niệm, chúng cũng không phải là phương pháp sao chépCác phương pháp sau đây thay đổi mảng ban đầu
5const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
3const a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
23console.log[years["2"] !== years["02"]];
4method[callbackFn, thisArg]
6Array.prototype.flat.call[{}]; // []
26console.log[years["2"] !== years["02"]];
9Array.prototype.flat.call[{}]; // []
5method[callbackFn, thisArg]
29console.log[years["2"] !== years["02"]];
Nhiều phương thức mảng lấy hàm gọi lại làm đối số. Hàm gọi lại được gọi tuần tự và nhiều nhất một lần cho mỗi phần tử trong mảng và giá trị trả về của hàm gọi lại được sử dụng để xác định giá trị trả về của phương thức. Tất cả đều có chung chữ ký
method[callbackFn, thisArg]
Trường hợp
console.log[years["2"] !== years["02"]];
30 có ba đối sốconsole.log[years["2"] !== years["02"]];
31Phần tử hiện tại đang được xử lý trong mảng
console.log[years["2"] !== years["02"]];
32Chỉ số của phần tử hiện tại đang được xử lý trong mảng
console.log[years["2"] !== years["02"]];
33Mảng mà phương thức được gọi
Giá trị mà
console.log[years["2"] !== years["02"]];
30 dự kiến sẽ trả về phụ thuộc vào phương thức mảng được gọiĐối số
console.log[years["2"] !== years["02"]];
35 [mặc định là const arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
1] sẽ được sử dụng làm giá trị console.log[years["2"] !== years["02"]];
37 khi gọi console.log[years["2"] !== years["02"]];
30. Giá trị console.log[years["2"] !== years["02"]];
37 cuối cùng có thể quan sát được bởi console.log[years["2"] !== years["02"]];
30 được xác định theo các quy tắc thông thường. nếu console.log[years["2"] !== years["02"]];
30 là , các giá trị nguyên thủy của console.log[years["2"] !== years["02"]];
37 được bao bọc trong các đối tượng và const arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
1/console.log[years["2"] !== years["02"]];
44 được thay thế bằng console.log[years["2"] !== years["02"]];
45. Đối số console.log[years["2"] !== years["02"]];
35 không liên quan đối với bất kỳ console.log[years["2"] !== years["02"]];
30 nào được xác định bằng hàm mũi tên, vì các hàm mũi tên không có ràng buộc console.log[years["2"] !== years["02"]];
37 của riêng chúngTất cả các phương thức lặp là và , mặc dù chúng hoạt động khác với
Các phương pháp sau đây là lặp đi lặp lại
6const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
7const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
4const a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
5const a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
6const a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
7const a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
9const arrayLike = { 0: "a", 1: "b", length: 2, }; console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
0Array.prototype.flat.call[{}]; // []
8const a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
9const a = { length: 0.7 }; Array.prototype.push.call[a]; console.log[a.length]; // 0
3Array.prototype.flat.call[{}]; // []
8Array.prototype.flat.call[{}]; // []
Cụ thể,
const arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
6, const a = { length: 0.7 };
Array.prototype.push.call[a];
console.log[a.length]; // 0
4, const a = { length: 0.7 };
Array.prototype.push.call[a];
console.log[a.length]; // 0
5, const a = { length: 0.7 };
Array.prototype.push.call[a];
console.log[a.length]; // 0
6, const a = { length: 0.7 };
Array.prototype.push.call[a];
console.log[a.length]; // 0
7 và Array.prototype.flat.call[{}]; // []
8 không phải lúc nào cũng gọi ___19_______30 trên mọi phần tử — chúng dừng lặp ngay khi giá trị trả về được xác địnhCó hai phương thức khác nhận hàm gọi lại và chạy hàm đó nhiều nhất một lần cho mỗi phần tử trong mảng, nhưng chúng có các dấu hiệu hơi khác so với các phương thức lặp thông thường [ví dụ: chúng không chấp nhận
console.log[years["2"] !== years["02"]];
35]
4Array.prototype.flat.call[{}]; // []
5Array.prototype.flat.call[{}]; // []
Phương thức
Array.prototype.flat.call[{}]; // []
9 cũng có chức năng gọi lại, nhưng nó không phải là phương thức lặp. Nó thay đổi mảng tại chỗ, không chấp nhận console.log[years["2"] !== years["02"]];
35 và có thể gọi lại nhiều lần trên một chỉ mụcCác phương thức mảng luôn chung chung — chúng không truy cập bất kỳ dữ liệu nội bộ nào của đối tượng mảng. Họ chỉ truy cập các phần tử mảng thông qua thuộc tính
fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 và các phần tử được lập chỉ mục. Điều này có nghĩa là chúng cũng có thể được gọi trên các đối tượng giống như mảngconst arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
Chuẩn hóa thuộc tính độ dài
Thuộc tính
fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 được kẹp vào phạm vi từ 0 đến 253 - 1. console.log[years["2"] !== years["02"]];
75 trở thành fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
1, vì vậy ngay cả khi không có fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 hoặc là const arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
1, nó vẫn hoạt động như thể nó có giá trị fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
1Array.prototype.flat.call[{}]; // []
Một số phương thức mảng thiết lập thuộc tính
fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 của đối tượng mảng. Họ luôn đặt giá trị sau khi chuẩn hóa, vì vậy, fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 luôn kết thúc bằng một số nguyênconst a = { length: 0.7 };
Array.prototype.push.call[a];
console.log[a.length]; // 0
Các đối tượng giống như mảng
Thuật ngữ đề cập đến bất kỳ đối tượng nào không ném trong quá trình chuyển đổi
fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 được mô tả ở trên. Trong thực tế, đối tượng như vậy được cho là thực sự có thuộc tính fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 và có các phần tử được lập chỉ mục trong phạm vi fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
1 đến console.log[years["2"] !== years["02"]];
85. [Nếu nó không có tất cả các chỉ số, nó sẽ có chức năng tương đương với một. ]Nhiều đối tượng DOM giống như mảng — ví dụ,
console.log[years["2"] !== years["02"]];
86 và console.log[years["2"] !== years["02"]];
87. Đối tượng console.log[years["2"] !== years["02"]];
88 cũng giống như mảng. Bạn có thể gọi các phương thức mảng trên chúng ngay cả khi bản thân chúng không có các phương thức nàyconsole.log[years["2"] !== years["02"]];
0console.log[years["2"] !== years["02"]];
89Tạo một đối tượng
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
9 mớiconsole.log[years["2"] !== years["02"]];
91Trả về hàm tạo
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
9console.log[years["2"] !== years["02"]];
93Tạo một thể hiện
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
9 mới từ một đối tượng dạng mảng hoặc đối tượng có thể lặp lạiconsole.log[years["2"] !== years["02"]];
95Trả về
fruits.length = 2;
console.log[Object.keys[fruits]]; // ['0', '1']
console.log[fruits.length]; // 2
6 nếu đối số là một mảng hoặc console.log[years["2"] !== years["02"]];
97 nếu khôngconsole.log[years["2"] !== years["02"]];
98Tạo một phiên bản
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
9 mới với số lượng đối số thay đổi, bất kể số lượng hoặc loại đối sốconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
00Phản ánh số lượng phần tử trong một mảng
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
01Chứa các tên thuộc tính không có trong tiêu chuẩn ECMAScript trước phiên bản ES2015 và được bỏ qua cho mục đích ràng buộc câu lệnh
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
02const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
03Trả về mục mảng tại chỉ mục đã cho. Chấp nhận số nguyên âm, đếm ngược từ mục cuối cùng
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
04Trả về một mảng mới là mảng đang gọi được nối với [các] mảng và/hoặc [các] giá trị khác
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
05Sao chép một chuỗi các phần tử mảng trong một mảng
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
06Trả về một đối tượng trình lặp mảng mới chứa các cặp khóa/giá trị cho mỗi chỉ mục trong một mảng
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
07Trả về
fruits.length = 2;
console.log[Object.keys[fruits]]; // ['0', '1']
console.log[fruits.length]; // 2
6 nếu mọi phần tử trong mảng đang gọi thỏa mãn chức năng kiểm traconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
09Điền vào tất cả các phần tử của một mảng từ chỉ mục bắt đầu đến chỉ mục kết thúc với một giá trị tĩnh
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
10Trả về một mảng mới chứa tất cả các phần tử của mảng đang gọi mà hàm lọc được cung cấp trả về
fruits.length = 2;
console.log[Object.keys[fruits]]; // ['0', '1']
console.log[fruits.length]; // 2
6const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
12Trả về giá trị của phần tử đầu tiên trong mảng thỏa mãn chức năng kiểm tra được cung cấp hoặc
const arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
1 nếu không tìm thấy phần tử thích hợpconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
14Trả về chỉ mục của phần tử đầu tiên trong mảng thỏa mãn chức năng kiểm tra được cung cấp hoặc
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
15 nếu không tìm thấy phần tử thích hợpconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
16Trả về giá trị của phần tử cuối cùng trong mảng thỏa mãn chức năng kiểm tra được cung cấp hoặc
const arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
1 nếu không tìm thấy phần tử phù hợpconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
18Trả về chỉ mục của phần tử cuối cùng trong mảng thỏa mãn chức năng kiểm tra được cung cấp hoặc
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
15 nếu không tìm thấy phần tử phù hợpconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
20Trả về một mảng mới với tất cả các phần tử của mảng con được nối vào nó theo cách đệ quy cho đến độ sâu đã chỉ định
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
21Trả về một mảng mới được hình thành bằng cách áp dụng hàm gọi lại đã cho cho từng phần tử của mảng đang gọi, sau đó làm phẳng kết quả theo một cấp
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
22Gọi một hàm cho từng phần tử trong mảng gọi
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
23 Thử nghiệmNhóm các phần tử của một mảng thành một đối tượng theo các chuỗi được trả về bởi hàm kiểm tra
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
24 Thử nghiệmNhóm các phần tử của một mảng thành một
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
25 theo các giá trị được trả về bởi một hàm kiểm traconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
26Xác định xem mảng đang gọi có chứa giá trị hay không, trả về
fruits.length = 2;
console.log[Object.keys[fruits]]; // ['0', '1']
console.log[fruits.length]; // 2
6 hoặc console.log[years["2"] !== years["02"]];
97 nếu thích hợpconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
29Trả về chỉ mục đầu tiên [ít nhất] mà tại đó có thể tìm thấy một phần tử đã cho trong mảng đang gọi
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
30Nối tất cả các phần tử của một mảng thành một chuỗi
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
31Trả về một trình vòng lặp mảng mới chứa các khóa cho mỗi chỉ mục trong mảng đang gọi
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
32Trả về chỉ mục cuối cùng [lớn nhất] mà tại đó có thể tìm thấy một phần tử đã cho trong mảng đang gọi hoặc
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
15 nếu không tìm thấy phần tử nàoconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
34Trả về một mảng mới chứa kết quả của việc gọi một hàm trên mọi phần tử trong mảng đang gọi
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
35Loại bỏ phần tử cuối cùng khỏi một mảng và trả về phần tử đó
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
36Thêm một hoặc nhiều phần tử vào cuối một mảng và trả về
fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 mới của mảngconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
38Thực thi hàm gọi lại "reducer" do người dùng cung cấp trên từng phần tử của mảng [từ trái sang phải], để giảm nó thành một giá trị
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
39Thực thi chức năng gọi lại "reducer" do người dùng cung cấp trên từng phần tử của mảng [từ phải sang trái], để giảm nó thành một giá trị
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
40Đảo ngược thứ tự của các phần tử của một mảng tại chỗ. [Đầu tiên trở thành cuối cùng, cuối cùng trở thành đầu tiên. ]
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
41Loại bỏ phần tử đầu tiên khỏi một mảng và trả về phần tử đó
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
42Trích xuất một phần của mảng đang gọi và trả về một mảng mới
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
43Trả về
fruits.length = 2;
console.log[Object.keys[fruits]]; // ['0', '1']
console.log[fruits.length]; // 2
6 nếu ít nhất một phần tử trong mảng gọi đáp ứng chức năng kiểm tra được cung cấpconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
45Sắp xếp các phần tử của một mảng tại chỗ và trả về mảng
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
46Thêm và/hoặc xóa phần tử khỏi mảng
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
47Trả về một chuỗi được bản địa hóa đại diện cho mảng đang gọi và các phần tử của nó. Ghi đè phương thức
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
48const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
49Trả về một chuỗi đại diện cho mảng đang gọi và các phần tử của nó. Ghi đè phương thức
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
50const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
51Thêm một hoặc nhiều phần tử vào phía trước của một mảng và trả về
fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
3 mới của mảngconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
53Trả về một đối tượng trình lặp mảng mới chứa các giá trị cho từng chỉ mục trong mảng
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
54Bí danh cho phương pháp
console.log[years["2"] !== years["02"]];
04 theo mặc địnhPhần này cung cấp một số ví dụ về hoạt động mảng phổ biến trong JavaScript
Ghi chú. Nếu bạn chưa quen với kiến thức cơ bản về mảng, trước tiên hãy cân nhắc đọc JavaScript First Steps. Mảng, which và bao gồm các ví dụ khác về hoạt động mảng phổ biến
Ví dụ này cho thấy ba cách để tạo mảng mới. đầu tiên sử dụng , sau đó sử dụng hàm tạo
console.log[years["2"] !== years["02"]];
89 và cuối cùng sử dụng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
57 để tạo mảng từ một chuỗiconsole.log[years["2"] !== years["02"]];
1Ví dụ này sử dụng phương thức
method[callbackFn, thisArg]
0 để tạo một chuỗi từ mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59console.log[years["2"] !== years["02"]];
2Ví dụ này cho thấy cách truy cập các mục trong mảng
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59 bằng cách chỉ định số chỉ mục của vị trí của chúng trong mảngconsole.log[years["2"] !== years["02"]];
3Ví dụ này sử dụng phương thức
method[callbackFn, thisArg]
2 để tìm vị trí [chỉ số] của chuỗi const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
62 trong mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59console.log[years["2"] !== years["02"]];
4Ví dụ này chỉ ra hai cách để kiểm tra xem mảng
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59 có chứa const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
62 và const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
66 hay không. đầu tiên với phương pháp console.log[years["2"] !== years["02"]];
00, sau đó với phương pháp method[callbackFn, thisArg]
2 để kiểm tra giá trị chỉ mục không phải là const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
15console.log[years["2"] !== years["02"]];
5Ví dụ này sử dụng phương thức
method[callbackFn, thisArg]
4 để nối một chuỗi mới vào mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59console.log[years["2"] !== years["02"]];
6Ví dụ này sử dụng phương thức
console.log[years["2"] !== years["02"]];
23 để xóa phần tử cuối cùng khỏi mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59console.log[years["2"] !== years["02"]];
7Ghi chú.
console.log[years["2"] !== years["02"]];
23 chỉ có thể được sử dụng để xóa phần tử cuối cùng khỏi một mảng. Để xóa nhiều mục khỏi phần cuối của một mảng, hãy xem ví dụ tiếp theoVí dụ này sử dụng phương thức
method[callbackFn, thisArg]
5 để xóa 3 mục cuối cùng khỏi mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59console.log[years["2"] !== years["02"]];
8Ví dụ này sử dụng phương thức
method[callbackFn, thisArg]
5 để cắt mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59 xuống chỉ còn 2 mục đầu tiên của nóconsole.log[years["2"] !== years["02"]];
9Ví dụ này sử dụng phương thức
console.log[years["2"] !== years["02"]];
26 để xóa mục đầu tiên khỏi mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
0Ghi chú. Chỉ có thể sử dụng
console.log[years["2"] !== years["02"]];
26 để xóa mục đầu tiên khỏi mảng. Để xóa nhiều mục khỏi đầu một mảng, hãy xem ví dụ tiếp theoVí dụ này sử dụng phương thức
method[callbackFn, thisArg]
5 để xóa 3 mục đầu tiên khỏi mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
1Ví dụ này sử dụng phương thức
console.log[years["2"] !== years["02"]];
29 để thêm, tại chỉ mục fruits.length = 10;
console.log[fruits]; // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 10
console.log[fruits[8]]; // undefined
1, một phần tử mới vào mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59 — làm cho nó trở thành phần tử đầu tiên mới trong mảngconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
2Ví dụ này sử dụng phương pháp
method[callbackFn, thisArg]
5 để xóa chuỗi const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
62 khỏi mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59 — bằng cách chỉ định vị trí chỉ mục của const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
62const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
3Ví dụ này sử dụng phương pháp
method[callbackFn, thisArg]
5 để xóa các chuỗi const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
62 và const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
93 khỏi mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59 — bằng cách chỉ định vị trí chỉ mục của const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
62, cùng với số lượng tổng số mục cần xóaconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
4Ví dụ này sử dụng phương thức
method[callbackFn, thisArg]
5 để thay thế 2 mục cuối cùng trong mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59 bằng các mục mớiconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
5Ví dụ này sử dụng vòng lặp
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
98 để lặp qua mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59, ghi nhật ký từng mục vào bảng điều khiểnconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
6Nhưng
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
98 chỉ là một trong nhiều cách để lặp qua bất kỳ mảng nào; Ví dụ này sử dụng phương thức
Array.prototype.flat.call[{}]; // []
0 để gọi một hàm trên từng phần tử trong mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59; const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
7Ví dụ này sử dụng phương thức
const arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log[Array.prototype.join.call[arrayLike, "+"]]; // 'a+b'
4 để hợp nhất mảng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59 với mảng fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
12, để tạo ra một mảng fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
13 mới. Lưu ý rằng const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59 và fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
12 không thay đổiconst fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
8Ví dụ này chỉ ra ba cách để tạo một mảng mới từ mảng
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
59 hiện có. đầu tiên bằng cách sử dụng cú pháp trải rộng, sau đó bằng cách sử dụng phương thức fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
17, sau đó bằng cách sử dụng phương thức method[callbackFn, thisArg]
1const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
9Tất cả các hoạt động sao chép mảng tích hợp sẵn [cú pháp trải rộng,
console.log[years["2"] !== years["02"]];
93, const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
42 và const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
04] tạo ra các bản sao nông. Thay vào đó, nếu bạn muốn có một bản sao sâu của một mảng, bạn có thể sử dụng fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
22 để chuyển đổi mảng đó thành một chuỗi JSON, sau đó fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
23 để chuyển đổi lại chuỗi thành một mảng mới hoàn toàn độc lập với mảng ban đầufruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
0Bạn cũng có thể tạo các bản sao sâu bằng cách sử dụng phương pháp
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
24, phương thức này có ưu điểm là cho phép các đối tượng có thể chuyển nhượng trong nguồn được chuyển sang bản sao mới, thay vì chỉ được sao chépCuối cùng, điều quan trọng là phải hiểu rằng việc gán một mảng hiện có cho một biến mới không tạo ra một bản sao của mảng hoặc các phần tử của nó. Thay vào đó, biến mới chỉ là một tham chiếu hoặc bí danh cho mảng ban đầu; . Do đó, nếu bạn thực hiện bất kỳ thay đổi nào đối với giá trị của mảng ban đầu hoặc giá trị của biến mới, thì biến kia cũng sẽ thay đổi theo.
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
1Có thể sử dụng các phương thức
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
23 để nhóm các phần tử của một mảng, sử dụng hàm kiểm tra trả về một chuỗi cho biết nhóm của phần tử hiện tạiỞ đây chúng ta có một mảng hàng tồn kho đơn giản chứa các đối tượng "thực phẩm" có
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
26 và fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
27fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
2Để sử dụng
const a = { length: 0.7 };
Array.prototype.push.call[a];
console.log[a.length]; // 0
8, bạn cung cấp một hàm gọi lại được gọi với phần tử hiện tại, và tùy chọn chỉ mục và mảng hiện tại, đồng thời trả về một chuỗi cho biết nhóm của phần tửĐoạn mã dưới đây sử dụng một hàm mũi tên để trả về
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
27 của mỗi phần tử mảng [điều này sử dụng để giải nén phần tử fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
27 khỏi đối tượng đã truyền]. Kết quả là một đối tượng có các thuộc tính được đặt tên theo các chuỗi duy nhất được gọi lại. Mỗi thuộc tính được gán một mảng chứa các phần tử trong nhómfruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
3Lưu ý rằng đối tượng được trả về tham chiếu các phần tử giống như mảng ban đầu [không phải bản sao sâu]. Việc thay đổi cấu trúc bên trong của các phần tử này sẽ được phản ánh trong cả mảng ban đầu và đối tượng được trả về
Ví dụ: nếu bạn không thể sử dụng một chuỗi làm khóa, nếu thông tin cần nhóm được liên kết với một đối tượng có thể thay đổi, thì bạn có thể sử dụng
const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
24 để thay thế. Điều này rất giống với fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
32 ngoại trừ việc nó nhóm các phần tử của mảng thành một const fruits = [];
fruits.push["banana", "apple", "peach"];
console.log[fruits.length]; // 3
25 có thể sử dụng một giá trị tùy ý [đối tượng hoặc nguyên thủy] làm khóaSau đây tạo một bàn cờ dưới dạng một chuỗi hai chiều. Bước đầu tiên được thực hiện bằng cách sao chép
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
34 trong fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
35 sang fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
36. Vị trí cũ tại fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
37 được để trốngfruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
4Đây là đầu ra
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
5fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
6Kết quả trong
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
7Kết quả của sự trùng khớp giữa
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
38 và một chuỗi có thể tạo ra một mảng JavaScript có các thuộc tính và phần tử cung cấp thông tin về sự trùng khớp. Một mảng như vậy được trả về bởi fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
39 và fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
40