Curs Javascript

O functie care poate fi utilizata in JavaSccript pentru a obtine numarul mai mare, mai mic si cel mai apropiat dintre acestea doua fata de alt nr.. Functia primeste doi parametri: un array (sau obiect) cu numere, si numarul. Compara acel numar cu cele din array /obiect, apoi returneaza numarul imediat mai mic ("lower"), cel imediat mai mare ("higher"), si cel mai apropiat ("closest").
Iata functia:
// returneaza un obiect cu  numerele din "nums": mai mici ('lower'), mai mare ('higher'), apropiat ('closest') de nr
// "nums" poate fi un Array cu numere [-2, 0, 3], sau un obiect {'n1': -1, 'n2': 1, 'n3': 2}
function closestLowerHigherNr(nums, nr) {
 // Curs JavaScript & jQuery - https://marplo.net/javascript/
  // Obtine intr-un Array valorile din "nums" (array /obiect), si le aranjeaza in ordine crescatoare
  var vnums = [];
  for each(var val in nums) vnums.push(val);
  vnums.sort(function(a,b){return a - b;});

  var nr_vnums = vnums.length;      // numarul de elemente in vnums

  // seteaza obiectul care va fi returnat, initial cu numarul cel mai mic si mai mare din vnums
  var re_obj = {'lower': Math.min(vnums[0], nr), 'higher': Math.max(vnums[nr_vnums-1], nr), 'closest': nr};

  // parcurge numerele, retine in re_obj numarul imediat mai mic si mai mare decat nr
  for(var i=0; i<nr_vnums; i++){
    if(nr > vnums[i]) re_obj['lower'] = vnums[i];
    else if(nr <= vnums[i]){
      // daca numarul curent din vnums este egal cu nr, sau imediat mai mare, retine numarul
      // si opreste instructiunea for each()
      re_obj['higher'] = vnums[i];
      break;
    }
  }

  // aici se obtine numarul cel mai apropiat de nr
  // (numarul ('lower' sau 'higher') cu cea mai mica diferenta de nr)
  re_obj['closest'] = (Math.abs(nr - re_obj['lower']) < Math.abs(re_obj['higher'] - nr)) ? re_obj['lower'] : re_obj['higher'];

  return re_obj;
}

Exemplu utiizare functie closestLowerHigherNr().
<script type="text/javascript"><!--
// returneaza un obiect cu  numerele din "nums": mai mici ('lower'), mai mare ('higher'), apropiat ('closest') de nr
// "nums" poate fi un Array cu numere [-2, 0, 3], sau un obiect {'n1': -1, 'n2': 1, 'n3': 2}
function closestLowerHigherNr(nums, nr) {
 // JavaScript & jQuery Course - http://www.coursesweb.net/javascript/
  // Obtine intr-un Array valorile din "nums" (array /obiect), si le aranjeaza in ordine crescatoare
  var vnums = [];
  for each(var val in nums) vnums.push(val);
  vnums.sort(function(a,b){return a - b;});

  var nr_vnums = vnums.length;      // numarul de elemente in vnums

  // seteaza obiectul care va fi returnat, initial cu numarul cel mai mic si mai mare din vnums
  var re_obj = {'lower': Math.min(vnums[0], nr), 'higher': Math.max(vnums[nr_vnums-1], nr), 'closest': nr};

  // parcurge numerele, retine in re_obj numarul imediat mai mic si mai mare decat nr
  for(var i=0; i<nr_vnums; i++){
    if(nr > vnums[i]) re_obj['lower'] = vnums[i];
    else if(nr <= vnums[i]){
      // daca numarul curent din vnums este egal cu nr, sau imediat mai mare, retine numarul
      // si opreste instructiunea for each()
      re_obj['higher'] = vnums[i];
      break;
    }
  }

  // aici se obtine numarul cel mai apropiat de nr
  // (numarul ('lower' sau 'higher') cu cea mai mica diferenta de nr)
  re_obj['closest'] = (Math.abs(nr - re_obj['lower']) < Math.abs(re_obj['higher'] - nr)) ? re_obj['lower'] : re_obj['higher'];

  return re_obj;
}

// Exemplu
var numbers = [-8, -3, 0, 5.8, 12, 9, 2.1];
var test1 = closestLowerHigherNr(numbers, -6);
var test2 = closestLowerHigherNr(numbers, 3);

// numerele stocate intr-un obiect
var nums_obj = {'n1':-8, 'n2':0, 'n3':12, 'n4':5.8, 'n5':9, 'n6':2.1};
var test3 = closestLowerHigherNr(nums_obj, 9);

// afiseaza fereastra alert cu valorile din in test1, test2, test3
alert('lower: '+test1.lower+ ', higher: '+test1.higher+ ', closest: '+ test1.closest);
  // Rezultat: lower: -8, higher: -3, closest: -8

alert('lower: '+test2.lower+ ', higher: '+test2.higher+ ', closest: '+ test2.closest);
  // Rezultat: lower: 2.1, higher: 5.8, closest: 2.1

alert('lower: '+test3.lower+ ', higher: '+test3.higher+ ', closest: '+ test3.closest);
  // Rezultat: lower: 5.8, higher: 9, closest: 9
//-->
</script>

Aceasta functie este buna si daca "nr" este mai mic, sau mai mare decat orice numar din array /obiect.
Exemplu:
<script type="text/javascript"><!--
// Aici se adauga functia closestLowerHigherNr()

var numbers = [-8, 2, 12];
var test4 = closestLowerHigherNr(numbers, -23);      // -23 e mai mic decat orice numar din "numbers"
var test5 = closestLowerHigherNr(numbers, 18);       // 18 e mai mare decat orice numar din "numbers"

// testeaza valorile din test4, test5
alert('lower: '+test4.lower+ ', higher: '+test4.higher+ ', closest: '+ test4.closest);
  // Rezultat: lower: -28, higher: -8, closest: -23
alert('lower: '+test5.lower+ ', higher: '+test5.higher+ ', closest: '+ test5.closest);
  // Rezultat: lower: 12, higher: 18, closest: 12
//-->
</script>

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag defineste zona de click intr-o harta creata dintr-o imagine?
<map> <img> <area>
<img src="image.jpg" usemap="#map1">
<map name="map1">
  <area shape="rect" coords="9, 120, 56, 149" href="#">
  <area shape="rect" coords="100, 200, 156, 249" href="#">
</map>
Ce proprietate CSS indica ce sa se intample cand continutul unui element depaseste dimensiunile lui?
display overflow position
#id {
  overflow: auto;
}
Clic pe evenimentul care este declansat cand mouse-ul e deasupra unui obiect.
onclick onmouseover onmouseout
document.getElementById("id").onmouseover = function(){
  document.write("Sa ai Viata Buna");
}
Indicati variabila PHP ce contine datele adaugate in adresa URL, dupa caracterul "?".
$_SESSION $_GET $_POST
if(isset($_GET["id"])) {
  echo $_GET["id"];
}
Clic pe pronumele reflexiv care e potrivit in propozitia: "Marc is the boy ... won the prize".
who which whoever
Marc is the boy who won the prize.
- Marc e baiatul care a castigat premiul.
Clic pe pronumele reflexiv care e potrivit in propozitia: "Voy a ver al pintor de ... les hablé ayer".
que quien cuyo
Voy a ver al pintor de quien les hablé ayer.
- Ma duc sa vad pictorul despre care ti-am vorbit ieri.
Obtine numarul mai mare, mai mic si cel apropiat

Last accessed pages

  1. Coduri pt culori (66192)
  2. Personal a (1735)
  3. Gramatica limbii spaniole. Indrumator si prezentare generala (64275)
  4. Creare si editare pagini HTML (82477)
  5. Titluri, Paragrafe, Un nou rand, Linie orizontala (31191)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1053)
  2. Curs HTML gratuit Tutoriale HTML5 (873)
  3. Coduri pt culori (620)
  4. Creare si editare pagini HTML (492)
  5. Conditional IF in Limba Engleza - Fraze Conditionale (463)