Código de JavaScript - Determinar si un array de números son consecutivos

Imágen de perfil
Val: 2.288
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Determinar si un array de números son consecutivosgráfica de visualizaciones


JavaScript

Publicado el 15 de Noviembre del 2019 por Katas (200 códigos)
16.895 visualizaciones desde el 15 de Noviembre del 2019
Función que recibe un array de números y determina si son consecutivos.
Para determinar si son consecutivos, se ejecuta un bucle (recude) donde se resta el valor anterior con el valor actual+1. Si al final el resultado es 0 todos son consecutivos.

1
2
3
4
5
6
7
8
9
sonConsecutivos([4,3,2,1]);                 // 0 SI
sonConsecutivos([5,4,3,2,1,0,-1,-2]);       // 0 SI
sonConsecutivos([1,2,3,4,5,6,7,8,9,10,11]); // 0 SI
sonConsecutivos([-5,-4,-3,-2]);             // 0 SI
sonConsecutivos([5,3,2,1]);                 // 1 NO
sonConsecutivos([1,2,4,5]);                 // 1 NO
sonConsecutivos([]);                        // -1 NO
sonConsecutivos([5]);                       // -1 NO
sonConsecutivos(["casa"]);                  // -1 NO

1
estrellaestrellaestrellaestrellaestrella(2)

Publicado el 15 de Noviembre del 2019gráfica de visualizaciones de la versión: 1
16.896 visualizaciones desde el 15 de Noviembre del 2019
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function sonConsecutivos(arrayNumeros)
{
    if (arrayNumeros.length<=1) {
        return -1;
    }
 
    // si el orden es creciente lo giramos
    if (arrayNumeros[0]<arrayNumeros[1]) {
        arrayNumeros.reverse();
    }
 
    // devuelve 0 si son consecutivos
    return arrayNumeros.reduce((acum, el, index, array)=>{
        if (index==1) {
            acum=0;
        }
        return +acum+array[index-1]-(el+1);
    });
}



Comentarios sobre la versión: 1 (2)

Imágen de perfil
16 de Noviembre del 2019
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder
Imágen de perfil
17 de Noviembre del 2019
estrellaestrellaestrellaestrellaestrella
Muy buen aporte.
Otra solución, podría ser tomar el valor absoluto de la diferencia de los números junto con una estructura while para no tener que recorrer todo el array, y romper el ciclo cuando no se cumpla la condición, algo así.

1
2
3
4
5
6
7
8
function sonConsecutivos(array){
        if(array.length < 2) return -1;
        let i = 0;
        while(i < array.length - 1) {
            if(Math.abs(array[i] - array[++i]) !== 1) return -1;
            return 0;
        }
}
Responder

Comentar la versión: 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s5657