În PHP, am'd face ceva de genul:
$array = array();
$array[] = "value1";
$array[] = "value2";
$array[] = "value3";
Cum aș face același lucru în JavaScript?
Nu't nevoie de jQuery pentru asta. Utilizarea regulată javascript
var arr = new Array();
// or var arr = [];
arr.push('value1');
arr.push('value2');
Notă: În javascript, puteți utiliza, de asemenea, Obiecte precum Tablouri, dar încă mai au acces la Gama de prototipuri. Acest lucru face ca obiectul să se comporte ca o matrice:
var obj = new Object();
Array.prototype.push.call(obj, 'value');
se va crea un obiect care arata ca:
{
0: 'value',
length: 1
}
Puteți accesa vaules doar ca o matrice normală f.ex ob[0]
.
Acest lucru nu are nimic de-a face cu jQuery, doar JavaScript în general.
Pentru a crea o matrice în JavaScript:
var a = [];
Sau:
var a = ['value1', 'value2', 'value3'];
Pentru a adăuga valori pe final de serie existent:
a.push('value4');
Pentru a crea un nou tablou, ar trebui să folosești ` [] "în loc de" new Array () pentru următoarele motive:
new Array(1, 2)
este echivalent cu [1, 2]", ci " new Array(1)
este nu echivalent cu [1]
. Mai degrabă acesta din urmă este mai aproape de a [undefined]
, deoarece un singur număr întreg argumentul cu "Matrice" constructorul indică dorit matrice lungime.Matrice este un nativ JavaScript obiect, de ce nu't doar să încercați să utilizați API-ul acesta? Știind API pe cont propriu va economisi timp atunci când va trece pur JavaScript sau un alt cadru.
Există un număr de posibilități diferite, deci, de a folosi una care cea mai mare parte obiective de nevoile tale.
Crearea de matrice cu valorile:
var array = ["value1", "value2", "value3"];
Adăugarea de valori la sfârșitul
var array = [];
array.push("value1");
array.push("value2");
array.push("value3");
Adăugarea de valori pentru a începe:
var array = [];
array.unshift("value1");
array.unshift("value2");
array.unshift("value3");
Adăugarea de valori la un indice:
var array = [];
array[index] = "value1";
sau prin utilizarea de îmbinare
array.splice(index, 0, "value1", "value2", "value3");
Alege o aveți nevoie.
Există mai multe moduri:
Instantierea matrice:
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
Împingerea cu matrice:
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]
Folosind .push()
este cel mai bun mod de a adăuga la o serie, din moment ce nu't trebuie să știți cât de multe elemente sunt deja acolo, și puteți adăuga mai multe elemente într-un singur apel de funcție.
jQuery este o abstracție de JavaScript. Cred că de jQuery ca un sub-set de JavaScript, care vizează lucrul cu DOM. Asta fiind spus, există funcții pentru adăugarea elementului(s) într-o colecție. Mi-ar folosi de bază JavaScript în cazul dumneavoastră dacă:
var array;
array[0] = "value1";
array[1] = "value2";
array[2] = "value3";
... Sau:
var array = ["value1", "value2", "value3"];
... Sau:
var array = [];
array.push("value1");
array.push("value2");
array.push("value3");