Προσθήκη νέας τιμής σε έναν υπάρχοντα πίνακα σε JavaScript

Σε PHP, θα έκανα κάτι τέτοιο:

$array = array();
$array[] = "value1";
$array[] = "value2";
$array[] = "value3";

Πώς θα έκανα το ίδιο πράγμα σε JavaScript;

Λύση

Δεν χρειάζεστε το jQuery για αυτό. Χρησιμοποιήστε κανονική javascript

var arr = new Array();
// or var arr = [];
arr.push('value1');
arr.push('value2');

Σημείωση: Στη javascript, μπορείτε επίσης να χρησιμοποιήσετε αντικείμενα ως συστοιχίες, αλλά εξακολουθείτε να έχετε πρόσβαση στα πρωτότυπα συστοιχιών. Αυτό κάνει το αντικείμενο να συμπεριφέρεται σαν συστοιχία:

var obj = new Object();
Array.prototype.push.call(obj, 'value');

θα δημιουργήσει ένα αντικείμενο που θα μοιάζει με:

{
    0: 'value',
    length: 1
}

Μπορείτε να προσπελάσετε τα vaules ακριβώς όπως έναν κανονικό πίνακα π.χ. obj[0].

Σχόλια (8)

Αυτό δεν έχει καμία σχέση με την jQuery, αλλά με την JavaScript γενικά.

Για να δημιουργήσετε έναν πίνακα σε JavaScript:

var a = [];

Ή:

var a = ['value1', 'value2', 'value3'];

Για να προσθέσετε τιμές στο τέλος του υπάρχοντος πίνακα:

a.push('value4');

Για να δημιουργήσετε έναν νέο πίνακα, θα πρέπει πραγματικά να χρησιμοποιήσετε [] αντί για new Array() για τους ακόλουθους λόγους:

  • Το new Array(1, 2) είναι ισοδύναμο με το [1, 2], αλλά το new Array(1) δεν είναι ισοδύναμο με το [1]. Μάλλον το τελευταίο είναι πιο κοντά στο [undefined], αφού ένα μόνο ακέραιο όρισμα στον κατασκευαστή Array υποδεικνύει το επιθυμητό μήκος του πίνακα.
  • Η Array, όπως και κάθε άλλη ενσωματωμένη κλάση της JavaScript, δεν είναι λέξη-κλειδί. Επομένως, κάποιος θα μπορούσε εύκολα να ορίσει την Array στον κώδικά σας για να κάνει κάτι άλλο από την κατασκευή ενός πίνακα.
Σχόλια (1)

Μπορείτε να χρησιμοποιήσετε τη μέθοδο .push() (η οποία είναι τυπική JavaScript)

π.χ.

var primates = new Array();
primates.push('monkey');
primates.push('chimp');
Σχόλια (0)