Foros del Web » Programando para Internet » Javascript »

Funcion cotar valores distintos en Array????

Estas en el tema de Funcion cotar valores distintos en Array???? en el foro de Javascript en Foros del Web. Hola, estoy buscando una funcion que me permita contar valores distintos en un array. array=(CASA, CASA, PISO, PISO, PISO, PISO, ATICO, CASA, ATICO) Se como ...
  #1 (permalink)  
Antiguo 22/11/2011, 06:28
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Funcion cotar valores distintos en Array????

Hola, estoy buscando una funcion que me permita contar valores distintos en un array.

array=(CASA, CASA, PISO, PISO, PISO, PISO, ATICO, CASA, ATICO)

Se como contar todos los valores de un array y que me de un total, pero busco una funcion que me permita contar los valores por separado:

CASA=3
PISO=4
ATICO=2

Me podeis ayudar????

Gracias!!!!
  #2 (permalink)  
Antiguo 22/11/2011, 06:55
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Funcion cotar valores distintos en Array????

Lo que necesitariamos es poder introducir en la funcion un valor del array, CASA por ejemplo y que el resultado fuese las veces que se repite de todo el array:

array=(CASA, CASA, PISO, PISO, PISO, PISO, ATICO, CASA, ATICO)

Gracias!!!
  #3 (permalink)  
Antiguo 22/11/2011, 07:12
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Funcion cotar valores distintos en Array????

La funcion que utlizo para contar el total es esta:

function contarArray(viviendas){
var myArray=[];
myArray = viviendas.toArray();
var i = myArray.length;
return i;
}

Gracias
  #4 (permalink)  
Antiguo 22/11/2011, 10:52
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Funcion cotar valores distintos en Array????

Solución encontrada, mas facil imposible, donde tendre la cabeza, jajajaj:

function contarCASA(location2_string)
{
var i = location2_string;
return i.split("CASA").length - 1;
}

Gracias!!!!!
  #5 (permalink)  
Antiguo 22/11/2011, 10:57
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 3 meses
Puntos: 38
Respuesta: Funcion cotar valores distintos en Array????

Cuidado con las condiciones de borde. Es decir:

- ¿Que pasa si la palabra CASA no aparece?
- ¿Que pasa si tienes un elemento CASA al final?

Debes poner un par de condiciones adicionales, creo.

Saludos.
  #6 (permalink)  
Antiguo 22/11/2011, 10:58
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 3 meses
Puntos: 38
Respuesta: Funcion cotar valores distintos en Array????

Ok, la segunda de mis preguntas si se cumple, pero creo que la primara no, igual con un if adicional lo resuelves.

Saludos.
  #7 (permalink)  
Antiguo 22/11/2011, 11:34
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Funcion cotar valores distintos en Array????

Ok, entendido, muchas gracias!!!
  #8 (permalink)  
Antiguo 22/11/2011, 13:42
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: Funcion cotar valores distintos en Array????

Código Javascript:
Ver original
  1. var lista = ['CASA', 'CASA', 'PISO', 'PISO', 'PISO', 'PISO', 'ATICO', 'CASA', 'ATICO'];
  2.  
  3. lista.reduce(function(memo, current) {
  4.     memo[current] = memo[current] || 0;
  5.     memo[current]++;
  6.     return memo;
  7. }, {}); // Object { CASA=3, PISO=4, ATICO=2}
__________________
blog | @aijoona
  #9 (permalink)  
Antiguo 22/11/2011, 14:09
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Funcion cotar valores distintos en Array????

Cita:
Iniciado por Aijoona Ver Mensaje
Código Javascript:
Ver original
  1. var lista = ['CASA', 'CASA', 'PISO', 'PISO', 'PISO', 'PISO', 'ATICO', 'CASA', 'ATICO'];
  2.  
  3. lista.reduce(function(memo, current) {
  4.     memo[current] = memo[current] || 0;
  5.     memo[current]++;
  6.     return memo;
  7. }, {}); // Object { CASA=3, PISO=4, ATICO=2}
Sólo por tocar las narices Según esto habría que refactorizarlo así:
Código Javascript:
Ver original
  1. var lista = ['CASA', 'CASA', 'PISO', 'PISO', 'PISO', 'PISO', 'ATICO', 'CASA', 'ATICO'];
  2.  
  3. lista.reduce(function(memo, current) {
  4.     current in memo || (memo[current] = 0);
  5.     memo[current]++;
  6.     return memo;
  7. }, {}); // Object { CASA=3, PISO=4, ATICO=2}
No sé qué performance hit puede tener en una lista tan pequeña, ni siquiera en una grande, pero tiene sentido que lo haya.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #10 (permalink)  
Antiguo 22/11/2011, 14:41
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Funcion cotar valores distintos en Array????

y por seguir tocando los witos y que seguro que hay gente que no sabe como obtener el valor de cada key
Cita:
alert(lista['CASA'])
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: distintos, funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:42.