online: 3; azi: 183; total: 52189 Webdesign - Coduri-si-functii-in-js - 14

array_map si array_search in JavaScript

Functiile array_map(), si array_search() sunt in general cunoscute si folosite in PHP. Aceste functii sunt utile cand se lucreaza cu Array-uri. JavaScript nu are predefinite aceste functii, dar ele pot fi create relativ usor.

array_map

array_map('callback', aray) - returneaza un array continand toate elementele din aray dupa ce s-a aplicat la fiecare functia de la callback.
Cod:
function array_map(func, array) {
  if(array.constructor.toString().match(/array/ig)) result = new Array();
  else if(array.constructor.toString().match(/object/ig)) result = new Object();
  if(result) {
    for(var indice in array) {
      result[indice] = eval(func+'('+array[indice]+')');
    }
    return result;
  }
}

Exemplu:
<script type="text/javascript"><!--
// http://www.discant.ro/javascript/
function test(x) { return x*x; }       // functia utilizata pt callback

// array_map
function array_map(func, array) {
  if(array.constructor.toString().match(/array/ig)) result = new Array();
  else if(array.constructor.toString().match(/object/ig)) result = new Object();
  if(result) {
    for(var indice in array) {
      result[indice] = eval(func+'('+array[indice]+')');
    }
    return result;
  }
}

var arr1 = [0, 3, 88];
var arr2 = { 1:23, 'abc':12, 'xy_z':8 }     // array asociativ (obiect)

arr1 = array_map('test', arr1);
arr2 = array_map('test', arr2);

alert(arr1);               // 0, 9, 7744
alert(arr2['xy_z']);       // 64
--></script>

array_search

array_search(val, aray) - cauta in aray valoarea de la val si returneaza cheia /indexul corespunzator.
Cod:
function array_search(val, array) {
  if(typeof(array) === 'array' || typeof(array) === 'object') {
    var rekey;
    for(var indice in array) {
      if(array[indice] == val) {
        rekey = indice;
        break;
      }
    }
    return rekey;
  }
}

Exemplu:
<script type="text/javascript"><!--
// array_search - http://www.discant.ro/javascript/
function array_search(val, array) {
  if(typeof(array) === 'array' || typeof(array) === 'object') {
    var rekey;
    for(var indice in array) {
      if(array[indice] == val) {
        rekey = indice;
        break;
      }
    }
    return rekey;
  }
}

var arr1 = [1, 3, 'js-php'];
var arr2 = { 1:23, 'abc':12, 'site':'coursesweb.net' };      // array asociativ (obiect)

alert( array_search(3, arr1) );                    // 1
alert( array_search('coursesweb.net', arr2) );     // site
--></script>