Código de JavaScript - Alineas texto de manera justificada

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

Alineas texto de manera justificadagráfica de visualizaciones


JavaScript

Actualizado el 12 de Enero del 2020 por Katas (200 códigos) (Publicado el 9 de Enero del 2020)
1.589 visualizaciones desde el 9 de Enero del 2020
Su tarea en este Kata es emular la justificación del texto en fuente monoespacio. Se le dará un texto de una línea y el ancho de justificación esperado. La palabra más larga nunca será mayor que este ancho.

Estas son las reglas:
- Use espacios para llenar los espacios entre las palabras.
- Cada línea debe contener tantas palabras como sea posible.
- Use '\n' para separar las líneas.
- La brecha entre palabras no puede diferir en más de un espacio.
- Las líneas deben terminar con una palabra, no un espacio.
- '\n' no está incluido en la longitud de una línea.
- Los espacios grandes van primero, luego los más pequeños ('Lorem--ipsum--dolor--sit-amet,' (2, 2, 2, 1 espacios)).
- La última línea no debe justificarse, use solo un espacio entre las palabras.
- La última línea no debe contener '\n'
- Las cadenas con una palabra no necesitan espacios vacíos ('somelongword\n').

1
2
3
4
5
6
7
8
9
10
11
12
13
const texto="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum sagittis dolor mauris, at elementum ligula tempor eget. In quis rhoncus nunc, at aliquet orci. Fusce at dolor sit amet felis suscipit tristique. Nam a imperdiet tellus. Nulla eu vestibulum urna. Vivamus tincidunt suscipit enim, nec ultrices nisi volutpat ac. Maecenas sit amet lacinia arcu, non dictum justo. Donec sed quam vel risus faucibus euismod. Suspendisse rhoncus rhoncus felis at fermentum. Donec lorem magna, ultricies a nunc sit amet, blandit fringilla nunc. In vestibulum velit ac felis rhoncus pellentesque. Mauris at tellus enim. Aliquam eleifend tempus dapibus. Pellentesque commodo, nisi sit amet hendrerit fringilla, ante odio porta lacus, ut elementum justo nulla et dolor.";
 
result=justify(texto, 100);
/* devolvera:
Lorem  ipsum  dolor  sit  amet,  consectetur  adipiscing  elit. Vestibulum sagittis dolor mauris, at
elementum  ligula  tempor eget. In quis rhoncus nunc, at aliquet orci. Fusce at dolor sit amet felis
suscipit  tristique.  Nam  a  imperdiet tellus. Nulla eu vestibulum urna. Vivamus tincidunt suscipit
enim,  nec  ultrices  nisi  volutpat ac. Maecenas sit amet lacinia arcu, non dictum justo. Donec sed
quam  vel risus faucibus euismod. Suspendisse rhoncus rhoncus felis at fermentum. Donec lorem magna,
ultricies  a  nunc  sit  amet,  blandit  fringilla  nunc.  In  vestibulum  velit  ac  felis  rhoncus
pellentesque. Mauris at tellus enim. Aliquam eleifend tempus dapibus. Pellentesque commodo, nisi sit
amet hendrerit fringilla, ante odio porta lacus, ut elementum justo nulla et dolor.
*/

1

Publicado el 9 de Enero del 2020gráfica de visualizaciones de la versión: 1
1.590 visualizaciones desde el 9 de Enero del 2020
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

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
const justify = (str,len) => {
    const t=str.split(" ");
 
    // get the lines
    let lines=[];
    const lastLine=t.reduce(
        (acum, word, index) => {
            if (acum) {
                if (acum.length + word.length + 1 <= len) {
                    return acum + " " + word;
                }
                lines.push(acum);
            }
            return word;
        }
    );
 
    // set the spaces
    lines=lines.map(
        (line) => {
            if (line.indexOf(' ') >= 0) {
                for (var lineLen = line.length; lineLen < len; ) {
                    line = line.replace(/ +/g, function(spaces) {
                        return spaces + (lineLen++ < len ? ' ' : '');
                    });
                }
            }
            return line;
        }
    );
 
    lines.push(lastLine);
    return lines.join("\n");
}



Comentarios sobre la versión: 1 (0)


No hay comentarios
 

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/s5801