console.log('Start'); var numberOfCall2Simulate = 100; var sDataObjVQs = ['sw1_VQ_Soporte_Silver_Atento','sw1_VQ_Soporte_Silver_TP','sw1_VQ_Soporte_Silver_IBR']; var sDistPerObjVQs = [0,30,70]; var startCallsinVQs = [0,0,0]; var currCallsEntInService = 0; var currPercDiff = new Array(); function indexOfSmallest(a) { var lowest = 0; for (var i = 1; i < a.length; i++) { if (a[i] < a[lowest]) lowest = i; } return lowest; } function derivadorPorcentual(CallNum) { var msg = ''; var per; var index; var VQSelected; var EntSelected; currCallsEntInService = 0; for( i = 0; i < sDataObjVQs.length; i++ ){ currCallsEntInService = currCallsEntInService + startCallsinVQs[i]; } if( sDistPerObjVQs.indexOf(100) < 0 ){ // DistribuciĆ³n variada if(currCallsEntInService > 0){ for( i = 0; i < sDataObjVQs.length; i++ ){ currPercDiff[i] = ((startCallsinVQs[i]/currCallsEntInService)*100) - sDistPerObjVQs[i]; } }else{ for( i = 0; i < sDataObjVQs.length; i++ ){ currPercDiff[i] = 0 - sDistPerObjVQs[i]; } } EntSelected = indexOfSmallest(currPercDiff); }else{ // Entidad con 100% EntSelected = sDistPerObjVQs.indexOf(100); } return EntSelected } var resp for ( var loop = 0; loop < numberOfCall2Simulate; loop++ ) { resp = derivadorPorcentual(loop); startCallsinVQs[resp] = startCallsinVQs[resp] + 1; console.log(loop + ' : ' + resp + ' : ' + sDataObjVQs[resp] + ' : ' + startCallsinVQs + ' : ' + currPercDiff); } const numbers = [45, 4, 9, 16, 25]; const over18 = numbers.filter(myFunction); function myFunction(value, index, array) { return value > 18; } console.log(over18); console.log('End');