Có một danh sách mảng trong Javascript không?


92

Tôi có rất nhiều thứ muốn thêm vào một mảng và tôi không biết trước kích thước của mảng sẽ là bao nhiêu. Tôi có thể làm điều gì đó tương tự với danh sách mảng c # trong javascript và thực hiện myArray.Add(object);lặp lại trên đó không?

Câu trả lời:


145

chỉ cần sử dụng array.push ();

var array = [];


array.push(value);

Điều này sẽ thêm một mục khác vào nó.

Để cất cánh, hãy sử dụng array.pop();

Liên kết đến các mảng JavaScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array


Liên kết không còn nữa.
sabsab

Bạn có thể thêm bao nhiêu dữ liệu tùy thích vào một mảng - arr.push (element1 [, ... [, elementN]]) - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
CarlosZ

51

Không có ArrayList trong javascript.

Tuy nhiên, có ArrayECMA 5.1 có chức năng tương tự như "ArrayList". Phần lớn câu trả lời này được lấy nguyên văn từ kết xuất HTML của Ecma-262 Edition 5.1, Đặc tả ngôn ngữ ECMAScript .

Mảng đã xác định có sẵn các phương thức sau:

  • .toString ( )
  • .toLocaleString ( )
  • .concat ( [ item1 [ , item2 [ , … ] ] ] )
    Khi phương thức concat được gọi với không hoặc nhiều đối số item1, item2, v.v., nó trả về một mảng chứa các phần tử mảng của đối tượng theo sau là các phần tử mảng của mỗi đối số theo thứ tự.
  • .join (separator)
    Các phần tử của mảng được chuyển đổi thành Chuỗi và các Chuỗi này sau đó được nối với nhau, phân tách bằng các lần xuất hiện của dấu phân cách. Nếu không cung cấp dấu phân tách, một dấu phẩy sẽ được sử dụng làm dấu phân cách.
  • .pop ( )
    Phần tử cuối cùng của mảng được xóa khỏi mảng và trả về.
  • .push ( [ item1 [ , item2 [ , … ] ] ] )
    Các đối số được nối vào cuối mảng, theo thứ tự chúng xuất hiện. Độ dài mới của mảng được trả về do kết quả của lệnh gọi. "
  • .reverse ( )
    Các phần tử của mảng được sắp xếp lại để đảo ngược thứ tự của chúng. Đối tượng được trả về là kết quả của cuộc gọi.
  • .shift ( )
    Phần tử đầu tiên của mảng bị xóa khỏi mảng và trả về. "
  • .slice (start, end)
    Phương thức lát cắt nhận hai đối số, bắt đầu và kết thúc, và trả về một mảng chứa các phần tử của mảng từ phần tử bắt đầu đến, nhưng không bao gồm, phần tử cuối (hoặc đến phần cuối của mảng nếu phần cuối là không xác định).
  • .sort (comparefn)
    Các phần tử của mảng này được sắp xếp. Việc sắp xếp không nhất thiết phải ổn định (nghĩa là các phần tử so sánh bằng nhau không nhất thiết phải giữ nguyên thứ tự ban đầu của chúng). Nếu Comparefn không phải là không xác định, nó phải là một hàm chấp nhận hai đối số x và y và trả về giá trị âm nếu x <y, 0 nếu x = y hoặc giá trị dương nếu x> y.
  • .splice (start, deleteCount [ , item1 [ , item2 [ , … ] ] ] )
    Khi phương thức nối được gọi với hai hoặc nhiều đối số start, deleteCount và (tùy chọn) item1, item2, v.v., các phần tử deleteCount của mảng bắt đầu từ đầu chỉ mục mảng được thay thế bằng các đối số item1, item2, v.v. Một đối tượng Mảng chứa các phần tử đã xóa (nếu có) được trả về.
  • .unshift ( [ item1 [ , item2 [ , … ] ] ] )
    Các đối số được thêm vào phần đầu của mảng, sao cho thứ tự của chúng trong mảng giống với thứ tự xuất hiện trong danh sách đối số.
  • .indexOf ( searchElement [ , fromIndex ] )
    indexOf so sánh searchElement với các phần tử của mảng, theo thứ tự tăng dần, bằng cách sử dụng Thuật toán so sánh bình đẳng nghiêm ngặt nội bộ (11.9.6) và nếu được tìm thấy ở một hoặc nhiều vị trí, trả về chỉ mục của vị trí đầu tiên; nếu không, -1 được trả về.
  • .lastIndexOf ( searchElement [ , fromIndex ] )
    lastIndexOf so sánh searchElement với các phần tử của mảng theo thứ tự giảm dần bằng cách sử dụng Thuật toán so sánh bình đẳng nghiêm ngặt nội bộ (11.9.6) và nếu được tìm thấy ở một hoặc nhiều vị trí, trả về chỉ mục của vị trí cuối cùng đó; nếu không, -1 được trả về.
  • .every ( callbackfn [ , thisArg ] )
    callbackfn phải là một hàm chấp nhận ba đối số và trả về một giá trị có thể cưỡng chế thành giá trị Boolean đúng hoặc sai. mọi cuộc gọi callbackfn một lần cho mỗi phần tử có trong mảng, theo thứ tự tăng dần, cho đến khi nó tìm thấy một trong đó callbackfn trả về false. Nếu một phần tử như vậy được tìm thấy, mọi ngay lập tức trả về false. Ngược lại, nếu callbackfn trả về true cho tất cả các phần tử, mọi phần tử sẽ trả về true.
  • .some ( callbackfn [ , thisArg ] )
    callbackfn phải là một hàm chấp nhận ba đối số và trả về một giá trị có thể cưỡng chế thành giá trị Boolean đúng hoặc sai. một số gọi callbackfn một lần cho mỗi phần tử có trong mảng, theo thứ tự tăng dần, cho đến khi nó tìm thấy một trong đó callbackfn trả về true. Nếu một phần tử như vậy được tìm thấy, một số ngay lập tức trả về true. Nếu không, một số trả về false.
  • .forEach ( callbackfn [ , thisArg ] )
    callbackfn phải là một hàm chấp nhận ba đối số. forEach gọi callbackfn một lần cho mỗi phần tử có trong mảng, theo thứ tự tăng dần.
  • .map ( callbackfn [ , thisArg ] )
    callbackfn phải là một hàm chấp nhận ba đối số. map gọi callbackfn một lần cho mỗi phần tử trong mảng, theo thứ tự tăng dần và tạo một Mảng mới từ kết quả.
  • .filter ( callbackfn [ , thisArg ] )
    callbackfn phải là một hàm chấp nhận ba đối số và trả về một giá trị có thể cưỡng chế thành giá trị Boolean đúng hoặc sai. bộ lọc gọi callbackfn một lần cho mỗi phần tử trong mảng, theo thứ tự tăng dần và xây dựng một mảng mới gồm tất cả các giá trị mà callbackfn trả về true.
  • .reduce ( callbackfn [ , initialValue ] )
    callbackfn phải là một hàm có bốn đối số. giảm các cuộc gọi gọi lại, dưới dạng một hàm, một lần cho mỗi phần tử có trong mảng, theo thứ tự tăng dần.
  • .reduceRight ( callbackfn [ , initialValue ] )
    callbackfn phải là một hàm có bốn đối số. ReduceRight gọi lệnh gọi lại, dưới dạng một hàm, một lần cho mỗi phần tử hiện diện trong mảng, theo thứ tự giảm dần.

và cả thuộc tính chiều dài .


22

Với javascript, tất cả các mảng đều linh hoạt. Bạn có thể chỉ cần thực hiện một số việc như sau:

var myArray = [];

myArray.push(object);
myArray.push(anotherObject);
// ...

Tôi yêu bạn, ngay cả khi tôi không thực sự biết bạn.
sabsab

14

Mảng khá linh hoạt trong JS, bạn có thể làm:

var myArray = new Array();
myArray.push("string 1");
myArray.push("string 2");

Mặc dù vậy, bạn không thể dễ dàng loại bỏ một phần tử cụ thể
Jacob Sánchez

7

Bạn thậm chí không cần thúc đẩy, bạn có thể làm điều gì đó như thế này -

var A=[10,20,30,40];

A[A.length]=50;

5

javascript sử dụng mảng động, không cần khai báo kích thước trước

bạn có thể đẩy và chuyển sang các mảng bao nhiêu lần tùy thích, javascript sẽ xử lý phân bổ và nội dung cho bạn


3

Trong tập lệnh Java, bạn khai báo mảng như sau:

var array=[];
array.push();

và đối với danh sách mảng hoặc đối tượng hoặc mảng bạn phải sử dụng json; và Serialize nó bằng json bằng cách sử dụng mã sau:

 var serializedMyObj = JSON.stringify(myObj);

Này Cảm ơn bạn đã cung cấp thông tin bổ sung. Đó Json serialization thực sự giúp
Prakash

1

Sử dụng push()phương thức mảng javascript , nó thêm đối tượng đã cho vào cuối mảng. Mảng JS khá linh hoạt, bạn có thể đẩy bao nhiêu đối tượng tùy thích vào một mảng mà không cần chỉ định trước độ dài của nó. Ngoài ra, các loại đối tượng khác nhau có thể được đẩy vào cùng một Mảng.


0

Chỉ cần sử dụng array.push(something);. Các mảng Javascript giống như ArrayLists về mặt này - chúng có thể được coi như chúng có độ dài linh hoạt (không giống như mảng java).


0

Hãy thử điều này, có thể có thể hữu ích, nó làm những gì bạn muốn:

ListArray

var listArray = new ListArray();
let element = {name: 'Edy', age: 27, country: "Brazil"};
let element2 = {name: 'Marcus', age: 27, country: "Brazil"};
listArray.push(element);
listArray.push(element2);

console.log(listArray.array)
<script src="https://marcusvi200.github.io/list-array/script/ListArray.js"></script>

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.