11486 sujets

JavaScript, DOM et API Web HTML5

Pages :
(reprise du message précédent)

ok alors selon tes valeurs de retour, j'ai juste changé le max en min ...
function f() {
	var args = Array.prototype.slice.call(arguments);
	var len = Math.min.apply(Math, args.map(function(a){return a.length;}));
	var res = [ len];
	for(var k=0;k<len;k++) {
		res[k] = [];
		for (var j=0;j<args.length;j++) {			
			res[k].push(args[j][k]);
		}
	}
	return res;
}

Modifié par dunjl (04 Dec 2007 - 14:35)
Plus simple comme ça ?

function fun(a,b){
  var low=Math.min(a.length,b.length);
  var arr=new Array(low);
  for(var i=0;i<low;i++){
    arr[i]=[a[i],b[i]];
  }
  return arr;
}
[/i][/i][/i]
Les variables "i" ont été zappées...

function fun(a,b){
  var low=Math.min(a.length,b.length);
  var arr=new Array(low);
  for(var k=0;k<low;k++){
    arr[k]=[a[k],b[k]];
  }
  return arr;
}
zebre a écrit :
Les variables "i" ont été zappées...

function fun(a,b){
  var low=Math.min(a.length,b.length);
  var arr=new Array(low);
  for(var k=0;k<low;k++){
    arr[k]=[a[k],b[k]];
  }
  return arr;
}
Ta fonction ne fonctionne qu'avec deux arguments
Smiley biggrin

Elle doit être indépendante du nombre d'arguments
Simple... mais peut-être y a-t-il plus rusé...

function fun(){
  var arr=null;
  if(arguments[0]){ //il y a au moins 1 argument
    //(on suppose que tous les arguments sont des Arrays)
    //détermine la dimension de l'argument le moins peuplé
    var len=arguments.length;
    var dim=arguments[0].length;
    for(var j=1;j<len;j++){ //j=0 convient aussi
      dim=Math.min(dim,arguments[j].length);
    }
    //construction de la réponse
    arr=new Array(dim-1);
    for(var j=0;j<dim;j++){
      arr[j]=new Array(len-1);
      for(var k=0;k<len;k++){
        arr[j][k]=arguments[k][j];
      }
    }
  }
  return arr;
}
Pages :