JavaScript - validar Nombre que no se repita en el arreglo

 
Vista:
sin imagen de perfil
Val: 17
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

validar Nombre que no se repita en el arreglo

Publicado por juan (8 intervenciones) el 05/09/2019 07:28:21
Captura
Captura1
Captura2




Buenas, me gustaria que me pudieran ayudar con este problemita que tengo en este programa...

En el programa tengo llenar un array con prompt, e ingresar el monto de cada cliente. para luego mostrar cada monto con cada nombre ingresado.

La cuestion esta en que tengo que realizar unas validaciones en la que me piden crear una funcion(como la que esta en la segunda iimagen ) donde haga un funcion que le mande como parametro el arreglo de nombre y esta funcion recorra internamente el array de nombre y verifique que los nombres ingresados no sean iguales, si a la hora de ingresar un nombre ,hay un nombre identico en el array no deje seguir al usuario hasta que escriba otro nombre distinto,

ya hice ese codigo pero al correr el programa me sale


Uncaught TypeError: Cannot read property 'length' of undefined
at validNombre (validaciones.js:3)
at CrearFactura (factura.js:16)
at HTMLButtonElement.onclick (index.html:11)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

validar Nombre que no se repita en el arreglo

Publicado por joel (895 intervenciones) el 05/09/2019 08:50:31
Hola Juan, estaría bien que pegaras tu código para poder probarlo...

Según el error que comentas, a que linea exactamente hace referencia?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

validar Nombre que no se repita en el arreglo

Publicado por juan (8 intervenciones) el 06/09/2019 10:34:13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
var nombre = [];
var  montos = []
 
var nombrePrompt ;
var  montosPrompt ;
 
function CrearFactura()
{
 
 
       do{
 
        nombrePrompt = prompt('Ingrese un nombre');
 
 
}while(nombrePrompt === null || nombrePrompt === '' || !isNaN(nombrePrompt) ||  validNombre() )
 
    nombre.push({nombre:nombrePrompt});
 
////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////// 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
do {
        montosPrompt = prompt  ("Digite monto")
    }
    while(montosPrompt === null || montosPrompt === '' || isNaN(montosPrompt)  )
 
    montos.push(parseFloat(montosPrompt))
 
}
 
 
 
function  facturaRealizada()
{
 
for(var i = 0; i < nombre.length; i++)
{
 
nombre[i]
montos[i]
 
}
console.log(nombre[nombre.length -1])
console.log(montos[montos.length -1])
 
console.log(CalcularPromedio())
console.log(Sumatoria())
 
 
}
 
 
 
function CalcularPromedio()
{
 
var resultado = 0;
var promedio = 0;
for(let i = 0; i < montos.length; i++)
{
promedio = promedio + parseInt(montos[i])
 
}
resultado = promedio / montos.length;
 
return resultado
 
 
 
}
 
function Sumatoria()
{
var sumatoria = 0;
let resultado = 0;
for(let i = 0; i < montos.length; i++)
    {
sumatoria = sumatoria + parseFloat(montos[i])
    }
 
    resultado = sumatoria
    return resultado
}
 
 
 
//La cuestion es aqui tengo confuciones para validar que el nombre que ingrese con el prompt no se me repita en el arreglo
function validNombre(nombre, arregloNombre){
	for (var i = 0; i < arregloNombre.length; i++) {
	if(nombre === arregloNombre[i]){
		return false;
	}
	};
}
 
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Desafio</title>
</head>
<body>
    <script src="factura.js"></script>
<button onclick="CrearFactura()">Crear Factura</button>
<button onclick="facturaRealizada()">Mostrar Factura</button>
<script src="./validaciones.js"></script>
</body>
</html>

HOLA JOEL AQUI ESTA EL CODIGO , TE DEJE UN COMENTARIO EN LA FUNCION DONDE TENGO EL PROBLEMA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

validar Nombre que no se repita en el arreglo

Publicado por Alejandro (532 intervenciones) el 05/09/2019 15:48:24
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
En la imagen 2 tienes una función la cual recibe 2 argumentos.
1
validNombre(nombre, arregloNombre){...

En la imagen 1 dentro del condicional while llamas a esa función sin pasar ningún argumento
1
while(...|| validNombre());


1
while(...|| validNombre(nombrePrompt,nombre));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

validar Nombre que no se repita en el arreglo

Publicado por juan (8 intervenciones) el 06/09/2019 10:36:33
Si osea cuando le paso un argumento , me dice que la funcion lenght no esta predefinida para esa area algo asi dice...ahi es donde tengo el problema ....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

validar Nombre que no se repita en el arreglo

Publicado por juan (8 intervenciones) el 06/09/2019 10:37:51
Me gustaria saber que idea tiene para que funcione ese programa y me ayudara alejandro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

validar Nombre que no se repita en el arreglo

Publicado por Alejandro (532 intervenciones) el 06/09/2019 17:23:31
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Ya te he dado la respuesta en el post anterior
1
while(...|| validNombre(nombrePrompt,nombre));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

validar Nombre que no se repita en el arreglo

Publicado por juan (8 intervenciones) el 11/09/2019 08:28:26
Alejandro muchas gracias por apuntarme el error, pero mira corro el programa en el navegador y aun asi pasandole los parametros aun no me valida que no se repitan los nombres, aun pongo nombres identicos y me permite continuar, cuando no deberia , ya que la cuestion es que ponga nombre distintos y si pongo uno igual el programa no permita continuar hasta poner uno distinto

si me puedes ayudar por favor te lo agradeceria compañero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

validar Nombre que no se repita en el arreglo

Publicado por juan (8 intervenciones) el 13/09/2019 21:23:36
Alejandro muchas gracias por apuntarme el error, pero mira corro el programa en el navegador y aun asi pasandole los parametros aun no me valida que no se repitan los nombres, aun pongo nombres identicos y me permite continuar, cuando no deberia , ya que la cuestion es que ponga nombre distintos y si pongo uno igual el programa no permita continuar hasta poner uno distinto

si me puedes ayudar por favor te lo agradeceria compañero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

validar Nombre que no se repita en el arreglo

Publicado por Alejandro (532 intervenciones) el 14/09/2019 00:06:23
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Como lo estas haciendo seria así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function validNombre(nombre, arregloNombre){
	for (var i = 0; i < arregloNombre.length; i++){
		if(nombre === arregloNombre[i]){
			return true;
		}
	}
	return false;
}
 
nombres=['Hugo','Paco','Luis'];
 
do{
	nombrePrompt = prompt('Ingrese un nombre');
}while(validNombre(nombrePrompt, nombres));

JavaScript ya cuenta con un método para saber si existe un item en el array
1
2
3
function validNombre(nombre, arregloNombre){
	return (arregloNombre.indexOf(nombre)==-1)?false:true;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar