Hướng dẫn what is the proper way to declare javascript array? - cách thích hợp để khai báo mảng javascript là gì?

Tôi chỉ học JavaScript và có vẻ như có một số cách để khai báo mảng.

  1. var x = new Array(10); // array of size 10, all elements undefined
    var y = new Array(10, 5); // array of size 2: [10, 5]
    
    1
  2. var x = new Array(10); // array of size 10, all elements undefined
    var y = new Array(10, 5); // array of size 2: [10, 5]
    
    2
  3. var x = new Array(10); // array of size 10, all elements undefined
    var y = new Array(10, 5); // array of size 2: [10, 5]
    
    3
  4. var x = new Array(10); // array of size 10, all elements undefined
    var y = new Array(10, 5); // array of size 2: [10, 5]
    
    4

Sự khác biệt của họ là gì, và những cách ưa thích là gì?

Theo trang web này, hai dòng sau đây rất khác nhau:

var badArray = new Array(10); // creates an empty Array that's sized for 10 elements
var goodArray= [10];          // creates an Array with 10 as the first element

Như bạn có thể thấy hai dòng này làm hai điều rất khác nhau. Nếu bạn muốn thêm nhiều hơn một mục thì BadArray sẽ được khởi tạo chính xác vì JavaScript sau đó sẽ đủ thông minh để biết rằng bạn đã khởi tạo mảng thay vì nêu có bao nhiêu yếu tố bạn muốn thêm.

Có phải những gì các tác giả đang cố gắng nói là

var x = new Array(10); // array of size 10, all elements undefined
var y = new Array(10, 5); // array of size 2: [10, 5]
5 tạo ra một mảng với chính xác 10 phần tử và
var x = new Array(10); // array of size 10, all elements undefined
var y = new Array(10, 5); // array of size 2: [10, 5]
6 tạo ra một mảng có kích thước không xác định với phần tử 0 là 10? Hoặc điều này có nghĩa là gì?

Hướng dẫn what is the proper way to declare javascript array? - cách thích hợp để khai báo mảng javascript là gì?

hỏi ngày 9 tháng 7 năm 2012 lúc 21:00Jul 9, 2012 at 21:00

Hướng dẫn what is the proper way to declare javascript array? - cách thích hợp để khai báo mảng javascript là gì?

CeleritasceleritasCeleritas

14.1K35 Huy hiệu vàng107 Huy hiệu bạc188 Huy hiệu đồng35 gold badges107 silver badges188 bronze badges

4

Trong ví dụ đầu tiên của bạn, bạn đang tạo một mảng trống, giống như làm

var x = new Array(10); // array of size 10, all elements undefined
var y = new Array(10, 5); // array of size 2: [10, 5]
7. Ví dụ thứ 2 tạo ra một mảng có kích thước 3 (với tất cả các phần tử
var x = new Array(10); // array of size 10, all elements undefined
var y = new Array(10, 5); // array of size 2: [10, 5]
8). Các ví dụ thứ 3 và thứ 4 là như nhau, cả hai đều tạo ra các mảng với các yếu tố đó.

Hãy cẩn thận khi sử dụng

var x = new Array(10); // array of size 10, all elements undefined
var y = new Array(10, 5); // array of size 2: [10, 5]
9.

var x = new Array(10); // array of size 10, all elements undefined
var y = new Array(10, 5); // array of size 2: [10, 5]

Cách ưa thích là sử dụng cú pháp

var x = []; // array of size 0
var y = [10] // array of size 1: [1]

var z = []; // array of size 0
z[2] = 12;  // z is now size 3: [undefined, undefined, 12]
0.

var x = []; // array of size 0
var y = [10] // array of size 1: [1]

var z = []; // array of size 0
z[2] = 12;  // z is now size 3: [undefined, undefined, 12]

Đã trả lời ngày 9 tháng 7 năm 2012 lúc 21:06Jul 9, 2012 at 21:06

gen_Ericgen_Ericgen_Eric

Phim thương hiệu vàng 218K4040 gold badges296 silver badges334 bronze badges

Cách ưa thích là luôn luôn sử dụng cú pháp theo nghĩa đen với giá đỡ vuông; Hành vi của nó có thể dự đoán được cho bất kỳ số lượng mục nào, không giống như ____ 21 của. Hơn nữa,

var x = []; // array of size 0
var y = [10] // array of size 1: [1]

var z = []; // array of size 0
z[2] = 12;  // z is now size 3: [undefined, undefined, 12]
1 không phải là một từ khóa và mặc dù nó không phải là một tình huống thực tế, nhưng ai đó có thể dễ dàng ghi đè lên nó:

function Array() { return []; }

alert(Array(1, 2, 3)); // An empty alert box

Tuy nhiên, vấn đề lớn hơn là tính nhất quán. Một người nào đó tái cấu trúc mã có thể bắt gặp chức năng này:

function fetchValue(n) {
    var arr = new Array(1, 2, 3);

    return arr[n];
}

Hóa ra, chỉ cần

var x = []; // array of size 0
var y = [10] // array of size 1: [1]

var z = []; // array of size 0
z[2] = 12;  // z is now size 3: [undefined, undefined, 12]
3, do đó, lập trình viên bỏ các yếu tố khác và phá vỡ mã, vì giờ đây nó trả về
var x = new Array(10); // array of size 10, all elements undefined
var y = new Array(10, 5); // array of size 2: [10, 5]
8:

var arr = new Array(1);

Đã trả lời ngày 9 tháng 7 năm 2012 lúc 21:02Jul 9, 2012 at 21:02

Để tuyên bố nó:

var myArr = ["apples", "oranges", "bananas"];

Để dùng nó:

document.write("In my shopping basket I have " + myArr[0] + ", " + myArr[1] + ", and " + myArr[2]);

Đã trả lời ngày 21 tháng 4 năm 2018 lúc 18:28Apr 21, 2018 at 18:28

ZackzackZack

Huy hiệu bạc 9111 silver badge1 bronze badge

1

Có một số cách để tạo mảng.

Cách truyền thống để khai báo và khởi tạo một mảng trông như thế này:

var a = new Array(5); // declare an array "a", of size 5
a = [0, 0, 0, 0, 0];  // initialize each of the array's elements to 0

Or...

// declare and initialize an array in a single statement
var a = new Array(0, 0, 0, 0, 0); 

user664833

17.5K18 Huy hiệu vàng89 Huy hiệu bạc132 Huy hiệu đồng18 gold badges89 silver badges132 bronze badges

Đã trả lời ngày 15 tháng 7 năm 2013 lúc 21:46Jul 15, 2013 at 21:46

DeepakdeepakDeepak

791 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges

2

Nếu bạn đang tạo một mảng có tính năng chính là độ dài của nó, thay vì giá trị của mỗi chỉ mục, việc xác định một mảng là

var x = []; // array of size 0
var y = [10] // array of size 1: [1]

var z = []; // array of size 0
z[2] = 12;  // z is now size 3: [undefined, undefined, 12]
5 là phù hợp.

eg-

var x = new Array(10); // array of size 10, all elements undefined
var y = new Array(10, 5); // array of size 2: [10, 5]
0

Đã trả lời ngày 9 tháng 7 năm 2012 lúc 23:11Jul 9, 2012 at 23:11

Kennebeckennebeckennebec

101K31 Huy hiệu vàng104 Huy hiệu bạc126 Huy hiệu đồng31 gold badges104 silver badges126 bronze badges