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
Care tag este element de tip bloc?
<div> <img> <span>
<div>Web Programming and Development</div>
Care cod CSS afiseaza textul subliniat?
font-style: italic; text-decoration: underline; font-weight: 500;
h2 {
  text-decoration: underline;
}
Clic pe functia JavaScript care apeleaza o alta functie dupa un anumit timp.
insertBefore() setTimeout() querySelector()
function someFunction() { alert("CoursesWeb.net"); }
setTimeout("someFunction()", 2000);
Clic pe instructiunea care returneaza numarul total de elemente dintr-un array asociativ.
count($array) count($array, 1) strlen()
$food =["fruits" =>["banana", "mar"), "veggie" =>["ceapa", "rosie"));
$nr_food = count($food, 1);
echo $nr_food;       // 6
Indicati Viitorul Perfect la negativ al verbului din paranteze, in propozitia: "The child (to not play) by Sunday".
has't played haven't been playing will haven't played
The child will haven't played by Sunday.
- Copilul nu s-ar fi jucat pana duminica.
Indicati Viitorul Perfect pentru verbul "contar" (a povesti) la forma "Él".
habrá contado va a contar contaba
Él no habrá contado el cuento.
- El nu ar fi spus povestea.
Array - Avansati

Last accessed pages

  1. Comanda Uds (269)
  2. Comanda Ud (320)
  3. Configurare fonturi (2611)
  4. Curs CSS Online Tutoriale CSS3 (117230)
  5. HTM5 canvas (4043)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (785)
  2. Exercitii engleza - English Tests and exercises - Grammar (354)
  3. Coduri pt culori (338)
  4. Gramatica limbii engleze - Prezentare Generala (326)
  5. Cursuri limba engleza gratuite si lectii online (321)