Python kiểm tra ks đa biến

Thống kê Kolmogorov–Smirnov định lượng khoảng cách giữa hàm phân phối thực nghiệm của mẫu và hàm phân phối tích lũy của phân phối tham chiếu hoặc giữa các hàm phân phối thực nghiệm của hai mẫu

Thử nghiệm Kolmogorov-Smirnov được sử dụng để kiểm tra xem một mẫu có xuất phát từ một phân phối nhất định hay không

Để thực hiện kiểm tra Kolmogorov-Smirnov bằng Python, chúng ta có thể sử dụng lệnh scipy. số liệu thống kê. kstest[] để kiểm tra một mẫu hoặc scipy. số liệu thống kê. ks_2samp[] cho thử nghiệm hai mẫu

Hướng dẫn này cho thấy một ví dụ về cách sử dụng từng chức năng trong thực tế

ví dụ 1. Thử nghiệm một mẫu Kolmogorov-Smirnov

Giả sử chúng ta có dữ liệu mẫu sau

from numpy.random import seed
from numpy.random import poisson

#set seed [e.g. make this example reproducible]
seed[0]

#generate dataset of 100 values that follow a Poisson distribution with mean=5
data = poisson[5, 100]

Đoạn mã sau cho biết cách thực hiện kiểm tra Kolmogorov-Smirnov trên mẫu gồm 100 giá trị dữ liệu này để xác định xem nó có đến từ phân phối chuẩn không

from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]

Từ đầu ra, chúng ta có thể thấy rằng thống kê thử nghiệm là 0. 9072 và giá trị p tương ứng là 1. 0908e-103. Vì giá trị p nhỏ hơn. 05, chúng tôi bác bỏ giả thuyết vô hiệu. Chúng tôi có đủ bằng chứng để nói rằng dữ liệu mẫu không đến từ phân phối chuẩn

Kết quả này cũng không có gì đáng ngạc nhiên vì chúng tôi đã tạo các giá trị cho mẫu đầu tiên bằng cách sử dụng phân phối chuẩn chuẩn và các giá trị cho mẫu thứ hai bằng cách sử dụng phân phối logic chuẩn

Đố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 để thực hiện các thao tác mảng phổ biến

Sự miêu tả

Trong JavaScript, mảng không phải là nguyên thủy mà thay vào đó là đố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
    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, phần tử thứ hai ở 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
    
    2, v.v. — và phần tử cuối cùng nằm ở 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ảng trừ đ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
    
    2
  • Hoạt động sao chép mảng 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]

chỉ số mảng

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 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 tập hợp thuộc tính đối tượng của 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 hoạt động duyệt và đột biến của mảng cho các thuộc tính được đặt tên này

Các phần tử mảng là các thuộc tính đố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ệ

from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]
1

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 ký hiệu dấu ngoặc 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ết

from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]
40 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à,
from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]
43 và
from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]
44 sẽ đề cập đến hai vị trí khác nhau trên đối tượng
from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]
45 và ví dụ sau đây có thể là
from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]
46

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
1

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ỉ mục mảng thực tế.
from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]
48 là một thuộc tính chuỗi tùy ý sẽ không được truy cập trong phép lặp mảng

Mối quan hệ giữa độ dài và tính chất số

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à thuộc tính số của một mảng JavaScript được kết nối

Một số phương thức mảng tích hợp sẵn [e. g. ,

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
50,
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
51,
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
52, 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ảng khi chúng được gọi

Các phương pháp khác [e. g. ,

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
54,
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
55, v.v. ] cũng dẫn đến 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
2

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 ứng

fruits[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
3

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

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ử

from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]
4

Điều này được giải thích thêm trên trang

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
90

Các phương thức mảng và các vị trí trống

Các vị trí trống trong các mảng thưa thớt 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à

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
91

Trong số các phương pháp lặp qua nhiều phần tử, phương pháp sau đây thực hiện kiểm tra

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
92 trước khi truy cập chỉ mục và không kết hợp các vị trí trố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
91

  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    94
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    95
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    96
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    97
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    98
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    99
  • 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
    
    90
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    52
  • 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
    
    92
  • 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
    
    93
  • 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
    
    94
  • 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
    
    95
  • 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
    
    96
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    51
  • 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
    
    98
  • 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
    
    99
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    55

Để 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à

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
91

  • 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
    
    12
  • 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
    
    13
  • 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
    
    14
  • 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
    
    15
  • 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
    
    16
  • 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
    
    17
  • 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
    
    18 Thử nghiệ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
    
    19 Thử nghiệm
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    100
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    50
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    102
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    103
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    104

Phương pháp sao chép và phương pháp biến đổi

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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
105 để 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à boolean [không phải đố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
    
    106,
    fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    107 và
    fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    108]. giá trị của chúng được sao chép vào mảng mới

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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
109

  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    94
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    97
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    98
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    99
  • 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
    
    93
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    51
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    55 [để xây dựng mảng các phần tử đã loại bỏ được trả về]

Lưu ý rằ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
18 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
19 không 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
109 để 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ép

Các phương pháp sau đây thay đổi mảng ban đầu

  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    95
  • 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
    
    13
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    123
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    54
  • 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
    
    96
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    126
  • 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
    
    99
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    55
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    129

phương pháp lặp

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ý

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
5

Trường hợp

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
130 có ba đối số

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
131

Phần tử hiện tại đang được xử lý trong mảng

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
132

Chỉ số của phần tử hiện tại đang được xử lý trong mảng

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
133

Mảng mà phương thức được gọi

Giá trị mà

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
130 dự kiến ​​sẽ trả về phụ thuộc vào phương thức mảng được gọi

Đối số

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
135 [mặc định là
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
91] sẽ được sử dụng làm giá trị
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
137 khi gọi
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
130. Giá trị
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
137 cuối cùng có thể quan sát được bởi
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
130 được xác định theo các quy tắc thông thường. nếu
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
130 không nghiêm ngặt, các giá trị nguyên thủy của
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
137 được bao bọc trong các đối tượng và
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
91/
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
144 được thay thế bằng
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
145. Đối số
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
135 không liên quan đối với bất kỳ
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
130 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
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
137 của riêng chúng

Tất cả các phương thức lặp đều là sao chép và chung chung, mặc dù chúng hoạt động khác với các vị trí trống

Các phương pháp sau đây là lặp đi lặp lại

  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    96
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    97
  • 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
    
    14
  • 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
    
    15
  • 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
    
    16
  • 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
    
    17
  • fruits[5] = "mango";
    console.log[fruits[5]]; // 'mango'
    console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
    console.log[fruits.length]; // 6
    
    99
  • 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
    
    90
  • 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
    
    18
  • 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
    
    19
  • 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
    
    93
  • 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
    
    98

Cụ thể,

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
96,
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
14,
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
15,
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
16,
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
17 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
98 không phải lúc nào cũng gọi
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
130 trên mọi phần tử — chúng dừng lặp lại ngay khi giá trị trả về được xác định

Có 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
135]

  • 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
    
    94
  • 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
    
    95

Phương thứ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
99 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
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
135 và có thể gọi lại nhiều lần trên một chỉ mục

Các phương thức mảng chung

Cá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ảng

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
9

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 chuyển đổi thành số nguyên và sau đó được kẹp vào phạm vi từ 0 đến 253 - 1.
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
175 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à
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
91, 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
1

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ộ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 dưới dạng số nguyên

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

Các đối tượng giống như mảng

Thuật ngữ đối tượng giống như mả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 từ
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
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
185. [Nếu nó không có tất cả các chỉ mục, nó sẽ có chức năng tương đương với một mảng thưa thớt. ]

Nhiều đối tượng DOM giống như mảng — ví dụ:

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
186 và
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
187. Đố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
188 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ày

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
10

Người xây dựng

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
189

Tạ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ới

thuộc tính tĩnh

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
191

Trả 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
9

phương pháp tĩnh

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
193

Tạ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 từ một đối tượng dạng mảng hoặc đối tượng có thể lặp lại

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
195

Trả về

from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]
46 nếu đối số là một mảng hoặc
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
197 nếu không thì

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
198

Tạ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ố

Thuộc tính cá thể

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
200

Phản ánh số lượng phần tử trong 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
201

Chứ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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
202

Phương thức sơ thẩm

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
203

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
204

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
205

Sao chép một chuỗi các phần tử mảng trong 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
206

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
207

Trả về

from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]
46 nếu mọi phần tử trong mảng đang gọi thỏa mãn chức năng kiểm tra

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
209

Đ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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
210

Trả 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ề

from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]
46

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
212

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
91 nếu không tìm thấy phần tử phù hợp

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
214

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
215 nếu không tìm thấy phần tử phù hợp

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
216

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
91 nếu không tìm thấy phần tử phù hợp

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
218

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
215 nếu không tìm thấy phần tử phù hợp

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
220

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
221

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
222

Gọi một hàm cho từng phần tử trong mảng gọi

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
223 Thử nghiệm

Nhó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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
224 Thử nghiệm

Nhóm các phần tử của một mảng thành một

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
225 theo các giá trị được trả về bởi hàm kiểm tra

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
226

Xác định xem mảng đang gọi có chứa giá trị hay không, trả về

from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]
46 hoặc
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
197 nếu thích hợp

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
229

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
230

Nối tất cả các phần tử của một mảng thành một chuỗi

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
231

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
232

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
215 nếu không tìm thấy phần tử nào

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
234

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
235

Loại bỏ phần tử cuối cùng khỏi một mảng và trả về 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
236

Thê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ảng

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
238

Thự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ị

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
239

Thự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ị

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
240

Đả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. ]

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
241

Loại bỏ phần tử đầu tiên khỏi một mảng và trả về 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
242

Trích xuất một phần của mảng đang gọi và trả về một mảng mới

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
243

Trả về

from scipy.stats import kstest

#perform Kolmogorov-Smirnov test
kstest[data, 'norm']

KstestResult[statistic=0.9072498680518208, pvalue=1.0908062873170218e-103]
46 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ấp

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
245

Sắp xếp các phần tử của một mảng tại chỗ và trả về mảng

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
246

Thêm và/hoặc xóa phần tử khỏ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
247

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
248

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
249

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
250

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
251

Thê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ảng

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
253

Trả 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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
254

Bí danh cho 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
104 theo mặc định

ví dụ

Phầ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, giải thích mảng là gì và bao gồm các ví dụ khác về các hoạt động phổ biến của mảng

Tạo một mảng

Ví dụ này cho thấy ba cách để tạo mảng mới. đầu tiên sử dụng ký hiệu mảng, sau đó 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
189 và cuối cùng 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
257 để tạo mảng từ một chuỗi

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
11

Tạo một chuỗi từ một mảng

Ví dụ này 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
50 để tạo một chuỗi 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
259

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
12

Truy cập một mục mảng theo chỉ mục của nó

Ví dụ này cho thấy cách truy cập các mục trong mảng

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
259 bằng cách chỉ định số chỉ mục của vị trí của chúng trong 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

Tìm chỉ mục của một mục trong một mảng

Ví dụ này 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
52 để tìm vị trí [chỉ mục] của chuỗi
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
262 trong mảng
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
259

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
14

Kiểm tra xem một mảng có chứa một mục nào đó không

Ví dụ này chỉ ra hai cách để kiểm tra xem mảng

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
259 có chứa
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
262 và
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
266 hay không. đầu tiên với 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
100, sau đó với 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
52 để kiểm tra giá trị chỉ mục không phải là
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
215

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
15

Nối một mục vào một mảng

Ví dụ này 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
54 để nối một chuỗi mới vào mảng
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
259

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
16

Xóa mục cuối cùng khỏi một mảng

Ví dụ này 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
123 để xóa mục cuối cùng khỏ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
259

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
17

Ghi chú.

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
123 chỉ có thể được sử dụng để xóa mục cuối cùng khỏi một mảng. Để xóa nhiều phần tử ở cuối mảng, hãy xem ví dụ tiếp theo

Loại bỏ nhiều mục từ cuối của một mảng

Ví dụ này 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
55 để xóa 3 mục cuối cùng khỏ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
259

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
18

Cắt một mảng xuống chỉ còn N mục đầu tiên của nó

Ví dụ này 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
55 để cắt bớ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
259 xuống chỉ còn 2 mục đầu tiên của nó

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
19

Xóa mục đầu tiên khỏi một mảng

Ví dụ này 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
126 để xóa mục đầu tiên khỏ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
259

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
20

Ghi chú. Chỉ 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
126 để 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 theo

Xóa nhiều mục khỏi đầu mảng

Ví dụ này 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
55 để xóa 3 mục đầu tiên khỏ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
259

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
21

Thêm một mục đầu tiên mới vào một mảng

Ví dụ này 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
129 để 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 mục mới vào mảng
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
259 — biến nó thành mục đầu tiên mới trong mảng

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
22

Xóa một mục theo chỉ mục

Ví dụ này 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
55 để xóa chuỗi
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
262 khỏ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
259 — bằng cách chỉ định vị trí chỉ mục của
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
262

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
23

Xóa nhiều mục theo chỉ mục

Ví dụ này 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
55 để xóa chuỗi
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
262 và
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
293 khỏ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
259 — bằng cách chỉ định vị trí chỉ mục của
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
262, cùng với số lượng tổng số mục cần xóa

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
24

Thay thế nhiều mục trong một mảng

Ví dụ này 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
55 để thay thế 2 mục cuối cùng trong mảng
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
259 bằng các mục mới

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
25

Lặp lại trên một mảng

Ví dụ này sử dụng vòng lặp

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
298 để lặp qua mảng
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
259, ghi từng mục vào bảng điều khiển

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
26

Nhưng

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
298 chỉ là một trong nhiều cách để lặp qua bất kỳ mảng nào;

Gọi một hàm trên mỗi phần tử trong một mảng

Ví dụ này sử dụng phương thứ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
90 để gọi một hàm trên từng phần tử trong mảng
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
259;

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
27

Hợp nhất nhiều mảng lại với nhau

Ví dụ này 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
94 để hợp nhấ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
259 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ả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
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
259 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 đổi

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
28

Sao chép một mảng

Ví dụ này cho thấy ba cách để tạo một mảng mới 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
259 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 pháp
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
17, rồi 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
51

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
29

Tất cả các hoạt động sao chép mảng tích hợp [cú pháp trải rộng,

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
193,
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
242 và
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
204] 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 chuỗi JSON, sau đó 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
23 để chuyển đổi chuỗi trở lại thành một mảng mới hoàn toàn độc lập với mảng ban đầu

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
0

Bạ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 pháp 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ép

Cuố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
1

Nhóm các phần tử của mảng

Các 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
223 có thể được sử dụng để 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ó một

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
26 và một
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
27

fruits[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

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
18, 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ử

Mã bên dưới sử dụng 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 cú pháp phá hủy đối tượng cho các đối số hàm để 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óm

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
3

Lư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

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
224 để 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
fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
225 có thể sử dụng một giá trị tùy ý [đối tượng hoặc nguyên thủy] làm khóa

Tạo mảng hai chiều

Sau đâ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ống

fruits[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
5

Sử dụng một mảng để lập bảng một tập hợp các giá trị

fruits[5] = "mango";
console.log[fruits[5]]; // 'mango'
console.log[Object.keys[fruits]]; // ['0', '1', '2', '5']
console.log[fruits.length]; // 6
6

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

Tạo một mảng sử dụng kết quả của một trận đấu

Kết quả của sự trùng khớp giữa một

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à thành phần 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

Chủ Đề