Στο JavaScript, οι πολυδιάστατοι πίνακες είναι πίνακες πινάκων. Για να αποκτήσετε πρόσβαση σε ένα στοιχείο, για παράδειγμα, ενός δισδιάστατου πίνακα, πρέπει να καθορίσετε τον τελεστή δύο φορές.
Ας υποθέσουμε ότι η μεταβλητή μήτρα είναι ένας πίνακας από πίνακες ακεραίων. Κάθε ένα από τα στοιχεία του πίνακα[j] είναι ένας πίνακας αριθμών. Για να αναφερθούμε σε έναν μόνο αριθμό, χρησιμοποιούμε τον συμβολισμό: matrix[j][k].
Παράδειγμα. Χρησιμοποιούμε έναν δισδιάστατο πίνακα για να δημιουργήσουμε έναν πίνακα πολλαπλασιασμού.
var matrix = new Array(10); // υπάρχουν 10 σειρές στον πίνακα
for(var j = 0; j< matrix.length; j++)
matrix[j] = new Array(10); //d κάθε σειρά δημιούργησε 10 στήλες
for(var row = 0; row< matrix.length; row++) {
for(col = 0; col< matrix .length; col++) {
matrix = row*col; // πλήρωση στοιχείων πίνακα
var αποτέλεσμα = μήτρα ; // αποτέλεσμα πολλαπλασιασμού 24
Μια τυπική χρήση ενός δισδιάστατου πίνακα σε JavaScript είναι η δημιουργία μιας σειράς προσαρμοσμένων επιλογών μενού. Ας υποθέσουμε ότι ορισμένες από τις επιλογές του κύριου μενού αντιστοιχούν σε επιλογές του αναπτυσσόμενου υπομενού. Ας δημιουργήσουμε έναν πίνακα του οποίου το μήκος αντιστοιχεί στον αριθμό των επιλογών του κύριου μενού. Τα στοιχεία αυτού του πίνακα θα είναι πίνακες ονομάτων επιλογών των αντίστοιχων υπομενού τους.
menu = new Array();
μενού = νέος πίνακας ("Επιλογή 1.1", "Επιλογή 1.2", ", "Επιλογή 1.3");
μενού = νέος πίνακας ("Επιλογή 2.1", "Επιλογή 2 . 2");
μενού = νέος πίνακας ("Επιλογή 3.1", "Επιλογή 3.2", "Επιλογή 3.3", "Επιλογή 3.4");
Για να αποκτήσετε πρόσβαση στην 1η επιλογή του 2ου υπομενού, πρέπει να γράψετε:
Η τιμή του μενού // είναι "Επιλογή 2.1".
Ας αλλάξουμε την κατασκευή του πίνακα έτσι ώστε να περιέχει τόσο τα ονόματα των επιλογών του κύριου μενού όσο και των επιλογών του υπομενού:
μενού = νέος πίνακας ()
menu = νέος πίνακας ("Menu1", "Menu2", "Menu3");
menu = new Array();
μενού = νέος πίνακας ("Επιλογή 1.1", "Επιλογή 1.2", "Επιλογή 1.3");
μενού = νέος πίνακας ("Επιλογή 2.1", "Επιλογή 2. 2");
μενού = νέος πίνακας ("Επιλογή 3.1", "Επιλογή 3.2", "Επιλογή 3.3", "Επιλογή 3.4");
μενού // η τιμή είναι "Menu2"
μενού // η τιμή είναι "Menu3"
μενού // η τιμή είναι "Επιλογή 2.1"
μενού // η τιμή είναι "Επιλογή 3.2"
Μέθοδοι Πίνακας
ΣΕ αυτός ο τομέαςΑς δούμε τις μεθόδους με τις οποίες μπορείτε να χειριστείτε τα στοιχεία των πινάκων.
Συμμετοχή() -μια μέθοδος που μετατρέπει καθένα από τα στοιχεία του πίνακα σε μια συμβολοσειρά και τα ενώνει. Ως όρισμα στη μέθοδο, μπορείτε να καθορίσετε μια προαιρετική συμβολοσειρά που έχει σχεδιαστεί για να διαχωρίζει μεμονωμένα στοιχεία στη συνολική συμβολοσειρά. Εάν δεν καθορίσετε έναν οριοθέτη, ένα κόμμα χρησιμοποιείται από προεπιλογή για την οριοθέτηση.
var arr = ; // δίνεται ένας πίνακας τριών στοιχείων
varstr = arr.join(); // η τιμή str είναι "12,23,38"
str = arr.join("; "); // str == "12; 23; 38"
Όπως αναφέρθηκε προηγουμένως, η μέθοδος Array.join() είναι το αντίστροφο της μεθόδου String.split(), η οποία χωρίζει τις συμβολοσειρές σε στοιχεία πίνακα.
ΑΝΤΙΣΤΡΟΦΗ() -μια μέθοδος που αντιστρέφει τη σειρά των στοιχείων σε έναν πίνακα. Αυτή η μέθοδοςδεν δημιουργεί νέο πίνακα, αλλά αλλάζει τη σειρά τους στον αρχικό πίνακα.
var arr = new Array(1,2,3); // arr = 1, arr = 2, arr = 3
arr.reverse(); // arr = 3, arr = 2, arr = 1
var str = arr.join(); // str == "3,2,1"
είδος() -μια μέθοδος που ταξινομεί τα στοιχεία ενός πίνακα στη θέση τους και επιστρέφει τον ταξινομημένο πίνακα. Εάν η μέθοδος sort() κληθεί χωρίς ορίσματα, θα ταξινομήσει τα στοιχεία του πίνακα αλφαβητικά, μετατρέποντάς τα προσωρινά σε τιμές συμβολοσειράς για να πραγματοποιηθεί σύγκριση εάν είναι απαραίτητο.
var arr = new Array("banana", "sherry", "apple");
varstr = arr.join(", "); // str == "μήλο, μπανάνα, κεράσι"
Εάν υπάρχει ένα απροσδιόριστο στοιχείο στον πίνακα, αυτό μετακινείται στο τέλος του πίνακα.
Για να ταξινομηθεί όχι με αλφαβητική σειρά, αλλά με κάποιον άλλο τρόπο, η συνάρτηση σύγκρισης μεταβιβάζεται στη μέθοδο sort () ως όρισμα, η αποστολή της οποίας είναι να υποδείξει τον κανόνα σύμφωνα με τον οποίο θα βρίσκεται ένα από τα δύο ορίσματά της νωρίτερα στην ταξινομημένη λίστα. Εάν το δεύτερο όρισμα πρέπει να προηγείται από το πρώτο όρισμα, η συνάρτηση σύγκρισης πρέπει να επιστρέψει μια αρνητική τιμή. Εάν σε έναν ταξινομημένο πίνακα το πρώτο όρισμα πρέπει να ακολουθεί το δεύτερο, τότε η συνάρτηση πρέπει να επιστρέψει έναν θετικό αριθμό. Η συνάρτηση σύγκρισης θα πρέπει να επιστρέψει 0 εάν οι δύο τιμές είναι ισοδύναμες, δηλαδή η σειρά τους δεν είναι σημαντική. Παράδειγμα.
Ας ταξινομήσουμε με αριθμητική σειρά.
var arr = ;
arr.sort(); // με αλφαβητική σειρά: 11111, 2222, 333, 44
arr.sort(function(first,second) ( //
επιστροφή πρώτος - δεύτερος? )); // Αριθμητική σειρά: 44, 333, 2222, 11111
Είναι βολικό να χρησιμοποιήσετε μια συνάρτηση κυριολεκτικά σε αυτό το απόσπασμα κώδικα επειδή η συνάρτηση σύγκρισης θα κληθεί μία φορά και δεν χρειάζεται να της δώσετε όνομα.
Ορίζοντας άλλες συναρτήσεις ταξινόμησης, μπορείτε να εφαρμόσετε μια μεγάλη ποικιλία μεθόδων ταξινόμησης.
concate() -μια μέθοδο που δημιουργεί και επιστρέφει έναν νέο πίνακα που περιέχει τα στοιχεία του αρχικού πίνακα, με τις τιμές όλων των ορισμάτων που καθορίζονται στη μέθοδο concat(). Στην περίπτωση που το ίδιο το όρισμα είναι πίνακας, τα στοιχεία του θα προστεθούν στον τελικό πίνακα. Ωστόσο, πρέπει να σημειωθεί ότι η αναδρομή δεν πραγματοποιείται κατά τον διαχωρισμό πινάκων από πίνακες.
var arr = ;
arr.concat(4, 5) // αποτέλεσμα
αρ. concat(); // αποτέλεσμα
αρ. concat (,) // αποτέλεσμα
αρ. concat (4, ]) // αποτέλεσμα ]
φέτα () -μια μέθοδος που επιστρέφει έναν υποπίνακα (τεμάχιο) του αρχικού πίνακα. Η μέθοδος έχει δύο ορίσματα που υποδεικνύουν την αρχή και το τέλος του επιστρεφόμενου υποπίνακα. Ο πίνακας που επιστρέφεται θα περιέχει τα στοιχεία από αυτόν του οποίου το ευρετήριο καθορίζεται από το πρώτο όρισμα μέχρι, αλλά δεν περιλαμβάνει, το στοιχείο του οποίου ο αριθμός προσδιορίζεται από το δεύτερο όρισμα.
Εάν καθορίσετε ένα μεμονωμένο όρισμα, ο πίνακας που επιστρέφεται θα περιέχει τα στοιχεία από τη θέση που καθορίζεται από το όρισμα μέχρι το τέλος του πίνακα. Ένα αρνητικό όρισμα καθορίζει τον αριθμό του στοιχείου πίνακα από το τέλος του πίνακα.
var arr = ;
arr.slice(0,3); // ΕΠΙΣΤΡΟΦΗ
αρ. φέτα (3); // ΕΠΙΣΤΡΟΦΗ
αρ. φέτα (1,-1); // ΕΠΙΣΤΡΟΦΗ
αρ. φέτα (-3,-2); // ΕΠΙΣΤΡΟΦΗ
συνδέω()-μια γενική μέθοδος που μπορεί να χρησιμοποιηθεί για την προσθήκη και αφαίρεση στοιχείων ενός πίνακα ή και για τις δύο λειτουργίες ταυτόχρονα. Ως αποτέλεσμα της λειτουργίας της μεθόδου, ο αρχικός πίνακας αλλάζει.
Στη μέθοδο splice(), το πρώτο όρισμα καθορίζει το ευρετήριο του πίνακα από τον οποίο θα ξεκινήσει η διαγραφή ή/και η εισαγωγή, το δεύτερο όρισμα καθορίζει τον αριθμό των στοιχείων που πρέπει να αφαιρεθούν. Εάν παραλείψετε το δεύτερο όρισμα, τότε τα στοιχεία του πίνακα θα διαγραφούν, ξεκινώντας από τη θέση που καθορίζεται από το πρώτο όρισμα της μεθόδου και μέχρι το τέλος του πίνακα. Επιστρέφει τη μέθοδο splice(). σειρά στοιχείων που αφαιρέθηκαν.Εάν το δεύτερο όρισμα είναι 0, η μέθοδος θα επιστρέψει έναν κενό πίνακα.
var arr = ;
arr.splice(4); // επιστρέφει ; Το arr γίνεται ίσο με
arr.splice(1,2); // επιστρέφει ; Το arr γίνεται ίσο με
Τα δύο ορίσματα στη μέθοδο splice(), τα οποία καθορίζουν τα στοιχεία του πίνακα που πρέπει να αφαιρεθούν, μπορούν να ακολουθηθούν από οποιοσδηποτε ΑΡΙΘΜΟΣπρόσθετα ορίσματα που καθορίζουν τα στοιχεία που θα εισαχθούν στον πίνακα, ξεκινώντας από τον δείκτη που δίνεται από το πρώτο όρισμα της μεθόδου.
var arr = ;
arr.splice(2,0"ab","cd"); /* θα επιστρέψει ; Το arr γίνεται */
arr.splice(2,2,,3); /* θα επιστρέψει ["ab","cd"]; Το arr γίνεται ,3,33,44,55] */
Θα πρέπει να λάβετε υπόψη το γεγονός ότι η μέθοδος splice() δεν χωρίζει ορίσματα πίνακα σε ξεχωριστά εισαγόμενα στοιχεία, αλλά εισάγει τον ίδιο τον πίνακα.
push() και pop() -μεθόδους που επιτρέπουν σε πίνακες να χρησιμοποιούνται ως στοίβες. Η μέθοδος push() προσθέτει νέα στοιχεία στο τέλος του πίνακα και επιστρέφει το νέο μήκος του πίνακα. Η μέθοδος pop() αφαιρεί το τελευταίο στοιχείο στον πίνακα και επιστρέφει την τιμή που αφαιρέθηκε ως αποτέλεσμα.
Και οι δύο μέθοδοι τροποποιούν τον αρχικό πίνακα. Όταν χρησιμοποιείτε έναν συνδυασμό των μεθόδων push() και pop() σε JavaScript στον κώδικά σας, μπορείτε να χρησιμοποιήσετε έναν πίνακα για να δημιουργήσετε μια στοίβα με έναν κανόνα υπηρεσίας πρώτης εισόδου και τελευταίας εξόδου.
var stack = ; // άδεια στοίβα
stack.push(1,2); // πίνακας: θα επιστρέψει 2
σωρός. κρότος(); // πίνακας: θα επιστρέψει 2
stack.push(3); // πίνακας: θα επιστρέψει 2
stack.pop(); // πίνακας: θα επιστρέψει 3
stack.push(); // πίνακας: ] θα επιστρέψει 2
σωρός. pop() // array: θα επιστρέψει
σωρός. κρότος(); // πίνακας: θα επιστρέψει 1
unshift() και shift() -μεθόδους που λειτουργούν σχεδόν το ίδιο με τις push() και pop(), αλλά εισάγουν και αφαιρούν στοιχεία όχι στο τέλος του πίνακα, αλλά στην αρχή.
Η μέθοδος unshift() προσθέτει ένα ή περισσότερα στοιχεία στην αρχή του πίνακα, μετατοπίζοντας τα στοιχεία στο τέλος του πίνακα και επιστρέφει το νέο μήκος του πίνακα. Η μέθοδος shift() χρησιμοποιείται για την αφαίρεση του πρώτου στοιχείου ενός πίνακα και επιστρέφει το αφαιρεθέν στοιχείο.
var arr = ; // arr:
arr.unshift(1); // arr: θα επιστρέψει 1
arr.unshift(22); // arr: θα επιστρέψει 2
arr.shift(); // arr: θα επιστρέψει 22
arr.unshift(3,); // arr:,1] θα επιστρέψει 3
arr.shift(); // arr:[,1] θα επιστρέψει 3
arr.shift(); // arr: θα επιστρέψει
arr.shift(); // arr: θα επιστρέψει 1
Κατά την κλήση της μεθόδου unshift() με πολλαπλά ορίσματα, αυτά τα ορίσματα εισάγονται όλα ταυτόχρονα, και όχι ένα κάθε φορά, όπως συμβαίνει στη μέθοδο splice(). Δηλαδή, στον τελικό πίνακα, οι τιμές θα ταξινομηθούν με την ίδια σειρά που γράφτηκαν στη λίστα ορισμάτων όταν κλήθηκε η μέθοδος.
toString() και toLocaleString()- μέθοδοι που μετατρέπουν καθένα από τα στοιχεία του πίνακα σε συμβολοσειρά και εμφανίζουν μια λίστα με τις λαμβανόμενες συμβολοσειρές διαχωρισμένες με κόμματα. Η μέθοδος toString(), όπως έχει ήδη σημειωθεί, είναι διαθέσιμη για οποιοδήποτε αντικείμενο στο JavaScript, συμπεριλαμβανομένου ενός πίνακα. Λάβετε υπόψη ότι ως αποτέλεσμα της λειτουργίας των μεθόδων, δεν παραμένουν ούτε αγκύλες ούτε άλλοι οριοθέτες γύρω από τις τιμές του πίνακα.
ToString() // θα επιστρέψει "1,2,3"
["a", "b", "c"].toString() // επιστρέφει "a,b,c"
].toString() // θα επιστρέψει "1,2,s"
Η μέθοδος toString() θα επιστρέψει την ίδια συμβολοσειρά με τη μέθοδο join() εάν καλείται χωρίς παραμέτρους.
Η toLocaleString() είναι μια μέθοδος όπου οι συμβολοσειρές που προκύπτουν συνενώνονται χρησιμοποιώντας έναν οριοθέτη συγκεκριμένης περιοχής.
Παράδειγμα 1. Δημιουργία κυκλικού banner (προβολή διαφανειών).
Ας δημιουργήσουμε μια σειρά εικόνων που θα εμφανίζονται στη σελίδα σε συγκεκριμένα χρονικά διαστήματα.
Slide = new Array("./pic/1.gif", "./pic/2.gif", "./pic/3.gif", "./pic/4.gif", "./pic/5.gif", "./pic/6.gif", "./pic/7.gif","./pic/8.gif", "./pic/9.gif");
//Изображения находятся во вложенной папке pic
k=0; Len=Slide.length;
function rotate(){
if (document.images){
document.banner.src=Slide[k];
setTimeout ("rotate()",1*1000);