Trong PHP, tôi muốn làm một cái gì đó như:Thêm giá trị mới cho một mảng hiện trong JavaScript
$array = array();
$array[] = "value1";
$array[] = "value2";
$array[] = "value3";
Làm thế nào tôi sẽ làm điều tương tự trong JavaScript?
Trong PHP, tôi muốn làm một cái gì đó như:Thêm giá trị mới cho một mảng hiện trong JavaScript
$array = array();
$array[] = "value1";
$array[] = "value2";
$array[] = "value3";
Làm thế nào tôi sẽ làm điều tương tự trong JavaScript?
Bạn không cần jQuery cho điều đó. Sử dụng javascript thường xuyên
var arr = new Array();
// or var arr = [];
arr.push('value1');
arr.push('value2');
Lưu ý: Trong javascript, bạn cũng có thể sử dụng Đối tượng làm mảng nhưng vẫn có quyền truy cập vào các mẫu nguyên mẫu. Điều này làm cho cư xử đối tượng như một mảng:
var obj = new Object();
Array.prototype.push.call(obj, 'value');
sẽ tạo ra một đối tượng mà trông giống như:
{
0: 'value',
length: 1
}
Bạn có thể truy cập vào vaules giống như một mảng bình thường f.ex obj[0]
.
đó chính là cách đối tượng "jQuery" trả về bởi '$()' hoạt động –
Vâng, tôi chắc chắn có một plugin cho phép bạn làm điều đó với jQuery: P –
Làm thế nào về '[]' thay vì 'mảng mới() 'và' {} 'thay vì' đối tượng mới() '... – James
Bạn có thể sử dụng phương thức .push()
(JavaScript chuẩn)
ví dụ:
var primates = new Array();
primates.push('monkey');
primates.push('chimp');
Điều này không liên quan gì đến jQuery, chỉ cần JavaScript nói chung.
Để tạo một mảng trong JavaScript:
var a = [];
Hoặc:
var a = ['value1', 'value2', 'value3'];
Để nối các giá trị trên vào cuối mảng hiện có:
a.push('value4');
Để tạo một mảng mới, bạn thực sự nên sử dụng []
thay vì new Array()
vì các lý do sau:
new Array(1, 2)
tương đương với [1, 2]
, nhưng new Array(1)
là không tương đương với [1]
. Thay vì sau này là gần hơn với [undefined]
, vì một đối số nguyên duy nhất cho hàm tạo Array
cho biết độ dài mảng mong muốn.Array
, giống như bất kỳ lớp JavaScript tích hợp nào khác, không phải là từ khóa. Do đó, ai đó có thể dễ dàng xác định Array
trong mã của bạn để làm điều gì đó khác ngoài việc xây dựng một mảng.+1 cho '[]' thay vì 'new Array()'. – BalusC
array = ["value1", "value2", "value3"]
nó không phải là quá nhiều jquery như javascript
đó không phải là * thêm * bất kỳ giá trị nào vào một mảng, đó là tạo một mảng với một số giá trị đã có trong nó. – nickf
Tôi sẽ không downvote cho điều đó, nhưng cảm ơn ít nhất giải thích ý kiến của bạn –
jQuery là một sự trừu tượng của JavaScript. Hãy nghĩ về jQuery như một tập hợp con của JavaScript, nhằm làm việc với DOM. Điều đó đang được nói; có các chức năng để thêm (các) mục vào bộ sưu tập. Tôi sẽ sử dụng JavaScript cơ bản trong trường hợp của bạn:
var array;
array[0] = "value1";
array[1] = "value2";
array[2] = "value3";
...Hoặc:
var array = ["value1", "value2", "value3"];
... Hoặc:
var array = [];
array.push("value1");
array.push("value2");
array.push("value3");
Tôi muốn gọi nó là một "khuôn khổ" ... và nó không phải là một tập hợp con hoặc. – mpen
Bạn nên khởi tạo biến 'mảng' thành đối tượng' Array' trong ví dụ đầu tiên của bạn, nếu không nó sẽ là 'undefined' và bạn không thể gọi' push' trên nó. –
@Ionut G. Stan: Tôi đang khởi tạo mảng bằng cách thực hiện 'var array = []; ' – roosteronacid
Mảng là một đối tượng JavaScript bản địa, tại sao bạn không chỉ cố gắng sử dụng API của nó? Việc tự biết API sẽ giúp bạn tiết kiệm thời gian khi bạn chuyển sang JavaScript thuần túy hoặc một khung công tác khác.
Có nhiều khả năng khác nhau, vì vậy, hãy sử dụng một số khả năng chủ yếu nhắm vào nhu cầu của bạn.
Tạo mảng với giá trị:
var array = ["value1", "value2", "value3"];
Thêm giá trị đến hết
var array = [];
array.push("value1");
array.push("value2");
array.push("value3");
Thêm giá trị vào bắt đầu:
var array = [];
array.unshift("value1");
array.unshift("value2");
array.unshift("value3");
giá trị Thêm một số chỉ số:
var array = [];
array[index] = "value1";
hoặc bằng cách sử dụng mối nối
array.splice(index, 0, "value1", "value2", "value3");
Chọn một mà bạn cần.
Người có chỉ mục không hoạt động đối với tôi. Tôi đang sử dụng nó bên trong một hàm map $ ('select [id^= "filter _"]'). Map (function() { var name = $ (this) .prop ('name'); filters [name] = $ (this) .val(); –
Có một số cách:
Instantiating mảng:
var arr;
arr = new Array(); // empty array
// ---
arr = []; // empty array
// ---
arr = new Array(3);
alert(arr.length); // 3
alert(arr[0]); // undefined
// ---
arr = [3];
alert(arr.length); // 1
alert(arr[0]); // 3
Đẩy tới mảng:
arr = [3]; // arr == [3]
arr[1] = 4; // arr == [3, 4]
arr[2] = 5; // arr == [3, 4, 5]
arr[4] = 7; // arr == [3, 4, 5, undefined, 7]
// ---
arr = [3];
arr.push(4); // arr == [3, 4]
arr.push(5); // arr == [3, 4, 5]
arr.push(6, 7, 8); // arr == [3, 4, 5, 6, 7, 8]
Sử dụng .push()
là cách tốt hơn để thêm vào một mảng, vì bạn không cần biết có bao nhiêu mục đã có, d bạn có thể thêm nhiều mục trong một cuộc gọi hàm.
Thật vậy, bạn phải khởi tạo mảng của mình rồi sau đó sử dụng dòng lệnh array.push().
var array = new Array();
array.push("first value");
array.push("second value");
jQuery không phải là ngôn ngữ; JavaScript là. – mpen
http://i.stack.imgur.com/ssRUr.gif – Broxzier
@ChrisB - đối với những người tự hỏi, Javascript là ngôn ngữ được sử dụng để thực hiện JQuery vinh quang. – Davor