Curs Flash

In aceasta lectie vor fi prezentate metode mai avansate de lucru cu Array.

1. Parcurgere Array

Pentru a parcurge un Array se folosesc oricare din instructiunile repetitive: for, while sau for each ... in (vedeti lectiile despre Instructiuni Repetitive).
Parcurgerea unui Array da posibilitatea aplicarii unei actiuni fiecarui element din el.
- Iata cate un exemplu cu fiecare.

Cu for()

var mAr:Array = [2, 6, 8];

// Se parcurge Array "mAr" cu "for()"
for(var i:int=0; i<mAr.length; i++)
{
  // Se dubleaza valoarea elementului curent
  mAr[i] *= 2;
}

// Verificare valori ale elementelor din "mAr" dupa parcurgere
trace(mAr);          // 4,12,16
- "var i:int=0;" seteaza indicele de la care incepe parcurgerea (se poate da si alta valoare in afara de 0, de la care element sa inceapa).
- "i<mAr.length;" face ca parcurgerea sa fie realizata pana la ultimul element.
- "i++" incrementeaza indicele cu o unitate, pt. fiecare parcurgere.
- In cadrul buclei "for()" (intre acolade) pot fi scrise orice instructiuni si operatii pt. elementul curent parcurs; acesta putand fi accesat cu indicele de ordine "i".

Cu while()

var mAr:Array = [2, 6, 8];

var i:int = 0;          // Se defineste indicele de ordine pt. parcurgere
// Se parcurge Array "mAr" cu "while()"
while(i<mAr.length)
{
  // Se dubleaza valoarea elementului curent
  mAr[i] *= 2;
  i++;          // Incrementeaza indicele ca sa treaca la urmatorul element
}

// Verificare valori ale elementelor din "mAr" dupa parcurgere
trace(mAr);          // 4,12,16

Cu for each ... in

var mAr:Array = [2, 6, 8];

// Se parcurge Array "mAr" cu "for each ... in"
for each(var elm:Number in mAr)
{
  // Se dubleaza valoarea elementului curent, care e stocat in "elm"
  elm *= 2;
  // Pot fi executate comenzi cu "elm"
}

// Verificare valori ale elementelor din "mAr" dupa parcurgere
trace(mAr);          // 2,4,8
- Observati ca, fata de celelalte instructiuni repetitive, "for each ... in" doar preia si foloseste intr-o variabila (aici "elm") valoarea elementului curent parcurs din Array (aici "mAr"), dar nu influenteaza elementele din matrice. Dupa cum se vede la verificarea cu "trace(mAr)", valorile din Array sunt neschimbate.

2. Array multi-dimensional

Un Array poate contine ca element un alt Array. In acest caz avem de-a face cu o matrice multi-dimensionala.
Sa luam un exemplu practic :

// Se creaza un Array cu 3 elemente (al treile fiind tot un Array)
var mAr:Array = ['tutoriale', 'marplo.net', [88, 'flash']];

// Verificare elemente totale din 'mAr', si al treilea
trace(mAr);          // tutoriale,marplo.net,88,flash
trace(mAr[2]);       // 88,flash
- Al treilea element ([88, 'flash']) fiind un Array in cel principal, se mai numeste si "array imbricat".

Accesare elemente din Array-ul imbricat

Pentru a accesa un element din matricea imbricata se foloseste urmatoarea formula:
                numeAr[i1][i2]
- Unde, "i1" este indicile de ordine a matricei imbricate in Array-ul principal, iar "i2" este indicele elementului din matricea interna.
Mai usor de inteles din urmatorul exemplu:
// Se creaza un Array cu 3 elemente (al treile fiind tot un Array)
var mAr:Array = ['tutoriale', 'marplo.net', [88, 'flash']];

// Se adauga intr-o variabila al doilea element din Array-ul imbricat
var test:* = mAr[2][1];

trace(test);          // Verificare valoare lui "test" (flash)

3. Array asociativ

Un Array asociativ este un Array in care indicii elementelor nu sunt numere intregi consecutive, ci siruri (cuvinte). Acestea nu mai sunt create automat, in ordine de catre program, ci trebuie definiti (asociati) special pentru fiecare element.
Sintaxa generala este:

- Unde "numeAr" este numele matricei.
- 'key1', 'key2' sunt indicii (cheile) asociate fiecarui element (pot fi scrisi si intre ghilimele duble, iar daca sunt numere, nu mai se adauga ghilimele).
- "val1", "val2" sunt valorile elementelor respective (pot fi: siruri, numere, variabile, expresii sau alt Array).
- Se pot adauga oricate elemente in Array, cu formula numeAr['key'] = valoare;

• Accesarea elementelor dintr-un Array asociativ se face la fel ca la cel cu indexi numere consecutive (denumit si "secvential"), cu sintaxa: numeAr['key']
• Acest tip de Array (asociativ) este de fapt si Obiect, deoarece valorile elementelor din el pot fi accesate si folosind formula: "numeAr.key", aici "key" fiind folosita ca o proprietate.
Iata un exemplu in care sunt aplicate ambele metode de accesare:
// Array asociativ cu 3 elemente
var mAr:Array = new Array();
 mAr['site'] = 'marplo.net';
 mAr['curs'] = 'Adobe Flash';
 mAr['tutoriale'] = 'JavaScript';

// Apelare cu metoda tip Array a primului element
trace(mAr['site']);         // marplo.net

// Apelarea altui element, cu metoda tip Obiect
trace(mAr.curs);           // Adobe Flash

Daca se aplica "trace(array_asociativ)", fara vreo cheie, nu va afisa nimic.

4. Parcurgere Array asociativ

Un Array asociativ se parcurge cu instructiunile "for ... in" sau "for each ... in".
Iata un exemplu pentru fiecare.

- Cu for ... in

// Array asociativ cu 3 elemente
var mAr:Array = new Array();
 mAr['site'] = 'marplo.net';
 mAr['curs'] = 'Adobe Flash';
 mAr['tutoriale'] = 'JavaScript';

// Se parcurge matricea "mAr" cu "for ... in"
for(var key:String in mAr)
{
  // Se afiseaza in Output Cheia si valoarea fiecarui element parcurs
  trace('Cheie='+ key+ ' - valoare='+ mAr[key]);

  // Pot fi executate orice comenzi si operati cu "key" si "mAr[key]"
}
- "key" e o variabila in care programul retine cheia (indexul) elementului curent parcurs (poate fi orice nume de variabila) din Array-ul "mAr".
In Output afiseaza:
Cheie=site - valoare=marplo.net
Cheie=tutoriale - valoare=JavaScript
Cheie=curs - valoare=Adobe Flash

- Cu for each... in

// Array asociativ cu 3 elemente
var mAr:Array = new Array();
 mAr['site'] = 'marplo.net';
 mAr['curs'] = 'Adobe Flash';
 mAr['tutoriale'] = 'JavaScript';

// Se parcurge matricea "mAr" cu "for each ... in"
for each(var elm in mAr)
{
  // Se afiseaza in Output valoarea fiecarui element parcurs
  trace('valE - '+ elm);

  // Pot fi executate orice comenzi si operati cu "elm"
}
- Observati diferenta fata de "for ... in". Cu "for each ... in" nu se obtine cheia elementului; variabila declarata intre paranteze (aici "elm") stocheaza insusi elementul parcurs.
In Output afiseaza:
valE - Adobe Flash
valE - marplo.net
valE - JavaScript

- Fisiere FLA cu exemplele din aceasta lectie pot fi descarcate de la:
  1. Array multi-dimensional
  2. Array asociativ
  3. Parcurgere Array asociativ

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce atribut e folosit in tag-ul <img> pentru adresa imaginii?
href src rel
<img src="http://coursesweb.net/imgs/webcourses.gif" width="191" height="63" alt="Courses-Web" />
Care din aceste coduri CSS ascunde elementul in pagina?
display: none; display: inline; position: relative;
#id {
  display: none;
}
Ce instructiune opreste executia lui while() sau for() ?
continue prompt() break
for(var i = 0; i< 8; i++) {
  if(i > 1) break;
  alert(i);
}
Indicati functia utilizata pentru a crea constante.
define() include() defined()
define("CONSTANT_NAME", "value");
echo CONSTANT_NAME;
Care este forma de plural a substativului "class" (clasa)?
classes clases clasis
This school has three classes.
- Scoala asta are trei clase.
Care este pluralul substativului "voz" (voce)?
vose voze voces
Escuché dos voces.
- Am auzit doua voci.
Array - Avansati

Last accessed pages

  1. Gramatica limbii engleze - Prezentare Generala (188716)
  2. Instructiuni repetitive for si while (4812)
  3. Ser - Estar (4242)
  4. Poezii pentru copii, in engleza (30854)
  5. Blog si Cugetari Personale (101612)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (4188)
  2. Curs HTML gratuit Tutoriale HTML5 (3885)
  3. Curs si Tutoriale JavaScript (2527)
  4. Curs PHP MySQL, Tutoriale si Scripturi PHP (2481)
  5. Blog si Cugetari Personale (2395)