Autor
|
Tema: [Aporte] javascript - Proporción de números (Leído 4,347 veces)
|
TickTack
Desconectado
Mensajes: 434
CipherX
|
Hola a todos, quizás esto pueda ser útil para algunas personas... La proporción de números en el vector que son mayores, menores o iguales a 0: const NumberValue = { GREATER_THAN_0: i => i > 0, LESS_THAN_0: i => i < 0, EQUAL_TO_0: i => i == 0 }; function printStatistics(...a) { for (var key in NumberValue) { if (NumberValue.hasOwnProperty(key)) { console.log(key + " = " + sum(NumberValue[key],a).map(i => 1.0 / a.length).reduce((pv, cv) => pv + cv, 0)); } } } function sum(callback, a) { return a.filter(callback); } console.log(printStatistics(-5, 5, 4, 3, 2, 1, 0, -1));
Resultado: GREATER_THAN_0 = 0.625 LESS_THAN_0 = 0.25 EQUAL_TO_0 = 0.125
Saludos Mod Edit: Usar etiquetas GeSHI.
|
|
« Última modificación: 9 Enero 2021, 01:22 am por MinusFour »
|
En línea
|
|
|
|
@XSStringManolo
Hacker/Programador
Colaborador
Desconectado
Mensajes: 2.399
Turn off the red ligth
|
Qué recuerdos del colegio. Ahí va mi forma de hacerlo: let proporcion = (...nums) => { let greater, less = 0, equal = 0; for(let i in nums) { nums[i] < 0 && ++less; nums[i] == 0 && ++equal; } greater = ( nums.length - (less + equal) ) / nums.length; less /= nums.length; equal /= nums.length; return [greater, less, equal]; } alert(proporcion(-5, 5, 4, 3, 2, 1, 0, -1));
|
|
|
En línea
|
Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖
|
|
|
MinusFour
|
Un poco más de golf pero se puede leer bien yo creo: let proporcion = (...arr) => { let porcentaje = 1/arr.length; return arr.reduce((total, actual) => ( actual > 0 ? total.mayor += porcentaje : actual < 0 ? total.menor += porcentaje : total.igual += porcentaje, total), { mayor: 0, menor: 0, igual: 0}); };
|
|
|
En línea
|
|
|
|
TickTack
Desconectado
Mensajes: 434
CipherX
|
Un poco más de golf pero se puede leer bien yo creo: let proporcion = (...arr) => { let porcentaje = 1/arr.length; return arr.reduce((total, actual) => ( actual > 0 ? total.mayor += porcentaje : actual < 0 ? total.menor += porcentaje : total.igual += porcentaje, total), { mayor: 0, menor: 0, igual: 0}); };
Si a tu código le agrego console.log(proporcion(-5, 5, 4, 3, 2, 1, 0, -1)); entonces, en vez de mostrarme los resultados esperados, me muestra: [object Object]
|
|
|
En línea
|
|
|
|
MinusFour
|
Entonces tu console.log está haciendo algo diferente a los demás. Por lo general console.log imprime la estructura del objeto no su valor primitivo. Una versión aún más reducida pero creo que no se lee tan bien. let proporcion = (...arr) => { let porcentaje = 1/arr.length; return arr.reduce((total, actual) => ( total[actual > 0 ? 'mayor' : actual < 0 ? 'menor' : 'igual' ] += porcentaje, total), { mayor: 0, menor: 0, igual: 0}); };
|
|
|
En línea
|
|
|
|
TickTack
Desconectado
Mensajes: 434
CipherX
|
Entonces tu console.log está haciendo algo diferente a los demás. Por lo general console.log imprime la estructura del objeto no su valor primitivo.
No es solamente el console.log, también la función alert me larga lo mismo. Yo uso Chrome. Supongo que vos usas Firefox.
|
|
|
En línea
|
|
|
|
#!drvy
|
No es solamente el console.log, también la función alert me larga lo mismo. El alert no tiene capacidad de mostrar estructuras. Solo puede mostrar valores convertibles a string. El console log en Chrome si deberia funcionar sin ningun problema, a mi me funciona bien. Ten en cuenta que no puedes concatenar cosas a la respuesta de un objeto. Por ejemplo esto no seria valido: console.log('resultado: ' + proporcion(-5, 5));
Saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[APORTE] numeros primos
Java
|
Caballero Maldito
|
1
|
2,830
|
2 Diciembre 2009, 21:27 pm
por Blitzkrieg'
|
|
|
Sencillo Algoritmo de Números Pseudoaleatorios [Aporte]
.NET (C#, VB.NET, ASP)
|
Keyen Night
|
0
|
2,700
|
17 Septiembre 2011, 21:31 pm
por Keyen Night
|
|
|
[Aporte][C++11] Numeros aleatorios
Programación C/C++
|
0xDani
|
0
|
1,880
|
23 Febrero 2013, 21:50 pm
por 0xDani
|
|
|
[Aporte] Detector de números primos en C++
« 1 2 »
Programación C/C++
|
ivancea96
|
12
|
9,011
|
12 Agosto 2014, 06:33 am
por leosansan
|
|
|
[javascript] [Bucle For] invertir números en javascript.
Desarrollo Web
|
Ali Baba
|
3
|
9,880
|
29 Mayo 2017, 10:00 am
por ThinkByYourself
|
|