<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ ivan rivalcoba - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Descubre miles de cursos de programación escritos por expertos. Aprende Desarrollo Web, Ciencia de Datos, DevOps, Seguridad y obtén asesoramiento profesional para desarrolladores. ]]>
        </description>
        <link>https://www.freecodecamp.org/espanol/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ ivan rivalcoba - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/espanol/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 09 May 2026 19:14:17 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/espanol/news/author/ivan-rivalcoba/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Como crear un formulario responsivo con funcionalidad de filtro usando HTML, CSS y JavaScript ]]>
                </title>
                <description>
                    <![CDATA[ Artículo original escrito por: Kingsley Ubah [https://www.freecodecamp.org/news/author/ubahthebuilder/] Artículo original: How to Build a Responsive Form with Filter Functionality Using HTML, CSS, and JavaScript [https://www.freecodecamp.org/news/build-a-responsive-filterable-form-with-css-and-javascript/] Traducido y adaptado por: Ivan Rivalcoba [/espanol/news/author/ivan-rivalcoba]  con la colaboración de Janine Rodriguez [https://github.com/JanineRincon20] La gran mayoría de los sitios que m ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/como-crear-un-formulario-responsivo-con-funcionalidad-de-filtro-usando-html-css-y-javascript/</link>
                <guid isPermaLink="false">61a1239d1297b209493b2a2a</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ ivan rivalcoba ]]>
                </dc:creator>
                <pubDate>Tue, 10 May 2022 03:53:27 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2022/05/ImageHeader.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p><strong><strong>Artículo original escrito por:</strong> </strong><a href="https://www.freecodecamp.org/news/author/ubahthebuilder/">Kingsley Ubah</a><br><strong><strong>Artículo original:</strong> </strong><a href="https://www.freecodecamp.org/news/build-a-responsive-filterable-form-with-css-and-javascript/">How to Build a Responsive Form with Filter Functionality Using HTML, CSS, and JavaScript</a><br><strong><strong>Traducido y adaptado por:</strong> </strong><a href="https://www.freecodecamp.org/espanol/news/author/ivan-rivalcoba">Ivan Rivalcoba</a> con la colaboración de <a href="https://github.com/JanineRincon20">Janine Rodriguez</a></p><p>La gran mayoría de los sitios que muestran una lista de datos mediante una tabla típicamente implementan algún tipo de funcionalidad de filtrado de datos. Esto le permite al usuario filtrar los elementos relevantes de una lista en función de una entrada de texto proveniente de algún formulario.</p><p>En este breve tutorial vamos a construir una tabla responsiva que incorpora la funcionalidad de filtrado de datos, el resultado lucirá de la siguiente manera:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/05/TablaFiltada1.gif" class="kg-image" alt="TablaFiltada1" width="1346" height="657" loading="lazy"><figcaption>Una tabla responsiva y filtrable por nombre de lenguaje de programación</figcaption></figure><p>La tabla contendrá una lista de desarrolladores. Cada fila mostrará un nombre, edad y lenguaje de programación. Cuando un usuario escriba en el campo de entrada de texto de la tabla, la tabla mostrará una lista filtrando las filas que estén relacionadas con el valor ingresado en el campo de entrada.</p><p>Durante el proceso de construcción de este proyecto, aprenderás sobre las propiedades CSS, así como el acceso y manipulación del DOM con JavaScript.</p><p>Puedes acceder al código de ejemplo en español desde <a href="https://codesandbox.io/s/responsive-form-xvbc9n?file=/index.js:0-1149">CodeSandbox</a> o del artículo original desde <a href="https://codepen.io/ubahthebuilder/pen/RwgdLoj">CodePen</a>.</p><h2 id="primeros-pasos"><strong>Primeros pasos</strong></h2><p>Necesitarás crear 3 archivos en tu carpeta del proyecto. Estos son <code>index.html</code> para el marcado, <code>styles.css</code> para los estilos, e <code>index.js</code> para el script.</p><pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="es"&gt;
&lt;head&gt;
  &lt;meta charset="UTF-8"&gt;
  &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
  &lt;meta http-equiv="X-UA-Compatible" content="ie=edge"&gt;
  &lt;title&gt;Tabla Filtrable&lt;/title&gt;
  &lt;link rel="stylesheet" href="styles.css"&gt;
&lt;/head&gt;
&lt;body&gt;
  
  &lt;script src="index.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre><p>Asegúrate de enlazar tus archivos de hoja de estilos y archivos de JavaScript al documento HTML tal y como se ha mostrado en el código anterior.</p><h2 id="marcado-html-para-la-tabla"><strong>Marcado HTML para la tabla</strong></h2><p>Agregar el siguiente marcado al interior de las etiquetas <code>body</code>:</p><pre><code class="language-html">&lt;div class="app"&gt;
    &lt;input type="text" id="searchInput" placeholder="Filtrar por desarrollador..." /&gt;
    &lt;table&gt;
        &lt;thead&gt;
          &lt;tr&gt;
            &lt;th&gt;Nombre&lt;/th&gt;
            &lt;th&gt;Edad&lt;/th&gt;
            &lt;th&gt;Lenguaje&lt;/th&gt;
          &lt;/tr&gt;
        &lt;/thead&gt;
        &lt;tbody id="names"&gt;
          &lt;tr&gt;
            &lt;td&gt;Rey&lt;/td&gt;
            &lt;td&gt;32&lt;/td&gt;
            &lt;td&gt;JavaScript&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Samuel&lt;/td&gt;
            &lt;td&gt;22&lt;/td&gt;
            &lt;td&gt;Python&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Alegra&lt;/td&gt;
            &lt;td&gt;28&lt;/td&gt;
            &lt;td&gt;Ruby&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Juan&lt;/td&gt;
            &lt;td&gt;29&lt;/td&gt;
            &lt;td&gt;Python&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Daniel&lt;/td&gt;
            &lt;td&gt;40&lt;/td&gt;
            &lt;td&gt;JavaScript&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Maria&lt;/td&gt;
            &lt;td&gt;21&lt;/td&gt;
            &lt;td&gt;C&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;David&lt;/td&gt;
            &lt;td&gt;26&lt;/td&gt;
            &lt;td&gt;JavaScript&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Krely&lt;/td&gt;
            &lt;td&gt;31&lt;/td&gt;
            &lt;td&gt;React&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Cleo&lt;/td&gt;
            &lt;td&gt;43&lt;/td&gt;
            &lt;td&gt;Java&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Pedro&lt;/td&gt;
            &lt;td&gt;19&lt;/td&gt;
            &lt;td&gt;Vue&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Jorge&lt;/td&gt;
            &lt;td&gt;59&lt;/td&gt;
            &lt;td&gt;Cobol&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Juanes&lt;/td&gt;
            &lt;td&gt;29&lt;/td&gt;
            &lt;td&gt;JavaScript&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Ernesto&lt;/td&gt;
            &lt;td&gt;22&lt;/td&gt;
            &lt;td&gt;PHP&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Sandra&lt;/td&gt;
            &lt;td&gt;29&lt;/td&gt;
            &lt;td&gt;R&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Verison&lt;/td&gt;
            &lt;td&gt;34&lt;/td&gt;
            &lt;td&gt;React Native&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td&gt;Marta&lt;/td&gt;
            &lt;td&gt;30&lt;/td&gt;
            &lt;td&gt;React&lt;/td&gt;
          &lt;/tr&gt;
       &lt;/tbody&gt;
    &lt;/table&gt;
&lt;/div&gt;</code></pre><p>El primer elemento que encontraremos en el código es un campo de entrada de texto, usaremos este campo para recibir los datos del usuario.</p><p>Seguido de eso tenemos la tabla. La tabla consiste en una cabeza (<code>thead</code>) y un cuerpo (<code>tbody</code>). La cabeza de la tabla tiene una sola fila (<code>tr</code>) de datos, estos datos formarán el encabezado de la tabla. El cuerpo de la tabla está compuesto por 16 filas de datos, cada una de ellas contiene los siguientes campos: nombre, edad y lenguaje de programación.</p><p>Tanto el campo de texto como la tabla están envueltas en una etiqueta <code>div</code>. Esta organización ayudará con la alineación de los elementos mediante una hoja de estilos que veremos más adelante.</p><p>Salva los archivos y abre la página en un navegador, deberás ver el siguiente resultado:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/03/image.png" class="kg-image" alt="image" width="311" height="567" loading="lazy"><figcaption>Tabla HTML</figcaption></figure><h2 id="como-estilizar-la-tabla-con-css">Como estilizar la Tabla con CSS</h2><p>Ahora es momento de aplicar algunos estilos a la tabla. Primeramente, estableceremos los estilos base de la siguiente manera:</p><pre><code class="language-css">@import url("https://fonts.googleapis.com/css2?family=Lato:wght@300&amp;display=swap");

/* Se retira el margen y el padding al rededor del body. Se establece la altura del body al mismo tamaño del alto de la pantalla. Se alinea todo al centro, tanto en el eje horizontal como en el eje vertical*/

body {
  margin: 0;
  height: 100vh;
  padding: 0;
  font-family: "lato", sans-seriff;
  display: grid;
  justify-content: center;
  align-items: center;
  font-size: 20px;
}

/* Se remueven los bordes del input. Se establece un ancho igual que el elemento padre y se establece un margen en la parte inferior */

#searchInput {
  border: none;
  outline: none;
  width: 100%;
  margin-bottom: 20px;
}

/* Cuando el input gane el foco, se agregará un borde azul en la parte inferior */

#searchInput:focus {
  border-bottom: 2px solid #4575b6;
}
</code></pre><p>Como se ve a continuación la tabla se alineará al centro.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/03/image-5.png" class="kg-image" alt="image-5" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2022/03/image-5.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2022/03/image-5.png 919w" sizes="(min-width: 720px) 720px" width="600" height="400" loading="lazy"></figure><p>Para hacer que la tabla luzca aún mejor, agregaremos los siguientes estilos:</p><pre><code class="language-css">/* Establece el ancho del contenedor de la tabla (div) en un 80% del ancho de la ventana del navegador y el alto a un 100% del alto de la ventana del navegador. `vh` y `vw` hace responsiva a la table debido a que la escala proporcionalmente al tamaño de la ventana del navegador. Además, establece un margen de 20px en la parte superior y en la parte inferior */
.app {
  width: 80vw;
  height: 100vh;
  margin: 20px 0;
}

/* Colapsa todos los bordes que separan a cada celda. La tabla ocupa todo el ancho de ".app", además se establece una sobra gris alrededor de la tabla */
table {
  border-collapse: collapse;
  width: 100%;
  box-shadow: 0 5px 7px gray;
}

/* Establece una sombra en la cabeza de la tabla */
thead {
  box-shadow: 0px 0px 10px gray;
}

/* Agrega algo de espacio al rededor del encabezado de la tabla. Alinea el texto a la dereche y lo convierte a mayúsculas */

th {
  padding: 1rem 3rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  text-align: left;
}

/* Agrega un padding en cada celda */
td {
  padding: 0.5rem 3rem;
  font-size: 1rem;
}

/* Crea una alternancia de colores a lo largo de las filas de la tabla. Establece en color azul todas las filas pares (2, 4, 6 ...) */

tr:nth-child(even) {
  background-color: #dee8f5;
}
</code></pre><p>Ahora nuestra tabla luce mucho mejor y es responsiva también.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/05/ResponsiveForm.gif" class="kg-image" alt="ResponsiveForm" width="600" height="400" loading="lazy"><figcaption>La tabla ahora es responsiva</figcaption></figure><h2 id="como-implementar-la-funcionalidad-de-filtrado-con-javascript-"><strong>Como implementar la funcionalidad de filtrado con JavaScript.</strong></h2><p>La tabla de datos hasta este punto es meramente estática. Utilizando JavaScript, implementaremos la lógica para el filtrado de nombres en función de lo que el usuario escriba en la entrada de texto.</p><p>En tu archivo de <em>script </em>define una función llamada <code>filtro</code>. En las primeras tres líneas accederemos al valor de la entrada de texto del usuario, posterior a ello obtendremos la referencia del <code>&lt;tbody&gt;</code> y la guardaremos en la variable <code>nombres</code>, finalmente accederemos al contenido de todas las filas de la tabla <code>&lt;tr&gt;</code> usando el contenido en<code>&lt;tbody&gt;</code> mismo que está referenciado en la variable <code>nombres</code>.</p><p>Un aspecto importante para tener en cuenta es normalizar la entrada del usuario, para ello se aplicará una transformación a mayúsculas toda entrada que proporcione el usuario en la caja de texto (Si el usuario ingresa 'j' esta será transformada a 'J')</p><pre><code class="language-js"> /* Esta función recolectará la entrada del usuario
y tomando en cuenta dicha entrada mostrará u ocultará información 
de una fila en particular */

function filtro() {
    
  // Accede al texto de entrada y a varios elementos del DOM
  let valor = document.getElementById("searchInput").value.toUpperCase();
  let nombres = document.getElementById("names");
  let filas = nombres.getElementsByTagName("tr");

  // continua el código
</code></pre><p>El siguiente paso es iterar a través del arreglo de filas. Por cada fila accederemos a la última columna (columna del lenguaje de programación) y obtendremos el texto que contiene (valor actual).</p><figure class="kg-card kg-code-card"><pre><code class="language-js">for (i = 0; i &lt; rows.length; i++) {
    let column = rows[i].getElementsByTagName("td")[2];
    let language = column.textContent;

    rows[i].style.display =
      language.toUpperCase().indexOf(value) &gt; -1 ? "" : "none";
  }
}

document.getElementById("searchInput").addEventListener("keyup", filter);
</code></pre><figcaption>Looping through the table rows</figcaption></figure><p>Si el contenido de la tabla en algunas de sus filas contiene cualquiera de los valores introducidos por el usuario desde la entrada de texto, las filas se mostrarán, en caso contrario se ocultarán. Para realizar esta operación usamos el operador ternario de asignación como una versión más corta de la sentencia condicional <code>if</code>.</p><p>Finalmente, agregamos un escuchador de eventos en la entrada, de modo que cada vez que una tecla es presionada, la función de filtrado será invocada.</p><p>A continuación, se presenta el código completo del script.</p><pre><code class="language-js">/* Esta función recolectará la entrada del usuario
y tomando en cuenta dicha entrada mostrará u ocultará información 
de una fila en particular */
function filtro() {
  // Accede al texto de entrada y a varios elementos del DOM
  let valor = document.getElementById("searchInput").value.toUpperCase();
  let nombres = document.getElementById("names");
  let filas = nombres.getElementsByTagName("tr");

  // Iteramos el arreglo de filas
  for(let i = 0; i &lt; filas.length; i++){
    // Por cada fila se obtiene la referencia a la columna lenguaje
    let columnaLenguaje = filas[i].getElementsByTagName("td")[2];
    // Se extrae el texto de la columna lenguaje
    let lenguaje = columnaLenguaje.textContent;
    // Se muestra u oculta la fila si la entrada de texto
    // coincide con el texto de la columna lenguaje
    filas[i].style.display = lenguaje.toUpperCase().indexOf(valor) &gt; -1 ? "" : "none";
  }
}

// Se agrega un escuchador de eventos a la entrada de texto
// para activar la función de filtrado cada vez que el usuario
// ingresa texto en la entrada
document.getElementById("searchInput").addEventListener("keyup", filtro);</code></pre><p>La tabla final deberá lucir de la siguiente manera:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/05/TablaFinal-1.gif" class="kg-image" alt="TablaFinal-1" width="600" height="400" loading="lazy"><figcaption>Vista final del formulario</figcaption></figure><h2 id="en-conclusi-n"><strong>En conclusión</strong></h2><p>Con tan solo HTML, CSS y JavaScript puedes crear elementos realmente elegantes con funciones avanzadas.</p><p>Espero que hayas aprendido un par de cosas con este ejercicio. Una vez más, puedes revisar el código <a href="https://codesandbox.io/s/responsive-form-xvbc9n?file=/index.js:0-1149">aquí</a> y modificarlo a tu gusto.</p><p>Gracias por llegar hasta aqui conmigo.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ El Split de JavaScript – Como dividir una cadena de carácteres en un arreglo con JS ]]>
                </title>
                <description>
                    <![CDATA[ Artículo original escrito por Tapas Adhikari [https://www.freecodecamp.org/news/author/joseph/] Artículo original JavaScript Split – How to Split a String into an Array in JS [https://www.freecodecamp.org/news/javascript-split-how-to-split-a-string-into-an-array-in-js/] Traducido y adaptado por Ivan Rivalcoba [/espanol/news/author/ivan-rivalcoba] De forma general, en un lenguaje de programación un string representa una secuencia de caracteres. Vamos a ver un ejemplo ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/el-split-de-javascript-como-dividir-una-cadena-de-caracteres-en-un-arreglo-con-js/</link>
                <guid isPermaLink="false">61096f26bd9dff09271bf172</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ ivan rivalcoba ]]>
                </dc:creator>
                <pubDate>Fri, 01 Oct 2021 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2021/09/Portada-2.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p><strong><strong><strong><strong>Artículo original escrito por </strong></strong></strong></strong><a href="https://www.freecodecamp.org/news/author/joseph/">Tapas Adhikari</a><br><strong><strong><strong><strong>Artículo original </strong></strong></strong></strong><a href="https://www.freecodecamp.org/news/javascript-split-how-to-split-a-string-into-an-array-in-js/">JavaScript Split – How to Split a String into an Array in JS</a><br><strong><strong><strong><strong>Traducido y adaptado por </strong></strong></strong></strong><a href="https://www.freecodecamp.org/espanol/news/author/ivan-rivalcoba">Ivan Rivalcoba</a></p><p>De forma general, en un lenguaje de programación un <code>string</code> representa una secuencia de caracteres.</p><p>Vamos a ver un ejemplo de la creación de un <code>string</code> a partir de la secuencia de caracteres: "¡Si, Tú puedes hacerlo!". En JavaScript podemos crear un <code>string</code> de diversas formas:</p><ul><li>Usando un literal <code>string</code> como un tipo de dato primitivo</li></ul><pre><code class="language-js">const msg = "¡Si, Tu puedes hacerlo!";</code></pre><ul><li>Usando el constructor <code>String()</code> como un objeto</li></ul><pre><code class="language-js">const msg = new String("¡Si, Tu puedes hacerlo!");</code></pre><p>Un hecho interesante acerca de las cadenas de caracteres en JavaScript es que podemos acceder a los caracteres individuales de una cadena usando su índice. El índice del primer carácter es <code>0</code>, de modo que para acceder al siguiente carácter basta con incrementar este índice de uno en uno. Por lo tanto, nosotros podemos acceder a cada uno de los caracteres de un <code>string</code> de la siguiente manera:</p><pre><code class="language-js">let str = "¡Si, Tu puedes hacerlo!";

console.log(str[0]); // ¡
console.log(str[1]); // S
console.log(str[2]); // i
console.log(str[3]); // ,
...
console.log(str[10]); // e</code></pre><p>La siguiente imagen nos permite visualizar este hecho:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/espanol/news/content/images/2021/09/ilust01.png" class="kg-image" alt="ilust01" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2021/09/ilust01.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2021/09/ilust01.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/size/w1600/2021/09/ilust01.png 1600w, https://www.freecodecamp.org/espanol/news/content/images/2021/09/ilust01.png 2172w" sizes="(min-width: 720px) 720px" width="2172" height="1209" loading="lazy"><figcaption>Accediendo a los carácteres individuales de una cadena por su índice</figcaption></figure><p>Además de su habilidad para acceder a los caracteres individuales de una cadena por medio de sus índices, JavaScript también ofrece una gran variedad de métodos para manipular y acceder a los caracteres que forman parte de una cadena.</p><p>En este artículo aprenderemos acerca de un método disponible en las cadenas de caracteres llamado <code>split()</code>. Es mi deseo que disfrutes su lectura.</p><h1 id="el-m-todo-split-en-javascript"><strong>El método<strong> <code>split()</code> </strong>en <strong>JavaScript</strong></strong></h1><p>El método <code>split()</code> divide (fragmenta) un <code>string</code> en dos o más sub cadenas usando un separador (divisor). El separador puede ser un solo carácter, otra cadena, o una expresión regular.</p><p>Una vez que se ha dividido la cadena en múltiples sub cadenas, el método <code>split()</code> sitúa las subdivisiones resultantes en una cadena que posteriormente es retornada como respuesta. Lo anterior es realizado sin modificar la cadena original.</p><p>Vamos a averiguar como funciona todo esto con un ejemplo. A continuación, se presenta una cadena de caracteres creada a partir de una literal <code>string</code>:</p><pre><code class="language-js">let mensaje = 'Soy un tipo feliz y afortunado';
</code></pre><p>Podemos llamar al método <code>split()</code> desde la cadena <code>mensaje</code>. En este ejemplo vamos a dividir la cadena usando como separador el carácter "espacio" (<code>' '</code>). En este caso el carácter espacio funciona como el separador o divisor.</p><pre><code class="language-js">// Dividiendo la cadena "mensaje" usando el carácter espacio
let arr = mensaje.split(' ');

// El arreglo
console.log(arr); // ["Soy", "un", "tipo", "feliz", "y", "afortunado"]


// Acceso a cada elemento del arreglo resultante
console.log(arr[0]); // "Soy"
console.log(arr[1]); // "un"
console.log(arr[2]); // "tipo"
console.log(arr[3]); // "feliz"
console.log(arr[4]); // "y",
console.log(arr[5]); // "afortunado"

</code></pre><p>El propósito principal del método <code>split()</code> es extraer partes de interés de la cadena original para posteriormente usar estas partes en alguna otra parte del programa.</p><h2 id="como-dividir-un-string-car-cter-por-car-cter-"><strong>Como dividir un <code>String</code> carácter por carácter.</strong></h2><p>Tú puedes dividir un <code>string</code> en sus correspondientes caracteres individuales usando como separador una cadena vacía <code>('')</code>. En el siguiente ejemplo, dividimos el mismo mensaje usando una cadena vacía. El resultado de la división será un arreglo conteniendo todos los caracteres en la cadena <code>mensaje</code>.</p><pre><code class="language-js">console.log(mensaje.split('')); // ["S", "o", "y", " ", "u", "n", " ", "t", "i", "p", "o", " ","f", "e", "l", "i", "z", " ", "y", " ", "a", "f", "o", "r", "t", "u", "n", "a", "d", "o"]</code></pre><blockquote>? Es importante notar en este punto que dividir una cadena vacía ('') usando una cadena vacía como separador regresara un arreglo vació. Esto te lo podrían preguntar en tu próxima entrevista de trabajo</blockquote><pre><code class="language-js">''.split(''); // devuelve []</code></pre><h2 id="como-dividir-una-cadena-de-caracteres-en-un-arreglo"><strong>Como dividir una cadena de caracteres en un arreglo</strong></h2><p>En principio puedes invocar al método <code>split()</code> desde un <code>string</code> sin la necesidad de especificar un separador/divisor. Esto significa que el método <code>split()</code> se usa sin argumentos.</p><p>Cuando invocas el método <code>split()</code> desde un <code>string</code> sin un separador, este regresara como respuesta un arreglo con un elemento, dicho elemento es el contenido del <code>string</code> original.</p><pre><code class="language-js">let mensaje = 'Soy un tipo feliz y afortunado';
console.log(mensaje.split()); // regresa ["Soy un tipo feliz y afortunado"]</code></pre><blockquote>? Importante, llamar al método <code>split()</code> desde un <code>string</code> vacío ('') sin el uso de un separador regresará un arreglo con un <code>string</code> vacío. Por ningún motivo regresará un arreglo vacío.</blockquote><p>Aquí se presentan dos ejemplos de modo que puedas ver la diferencia:</p><pre><code class="language-js">// Regresa como resultado un arreglo vacío
''.split(''); // regresa []

// Regresa como resultado un arreglo con un 'string' vacío
''.split() // regresa [""]</code></pre><h2 id="divisi-n-de-un-string-usando-un-car-cter-no-presente-en-el-string"><strong>División de un <code>string</code> usando<strong> </strong>un carácter no presente en el <code>string</code></strong></h2><p>Es común usar un carácter separador que forma parte del <code>string</code> que se quiere dividir. Puede llegar a ocurrir que pases al método <code>split</code> un separador que no forma parte del <code>string</code> que se desea dividir o dicho de otro modo que no este presente en el <code>string</code>. En ese caso el método <code>split()</code> retornará un <code>array</code> de salida con el <code>string</code> original como primer y único elemento.</p><p>En el siguiente ejemplo, el <code>string</code> "mensaje" no tiene el carácter coma (,). Apliquemos el método <code>split</code> usando como separador a la coma (,).</p><pre><code class="language-js">let mensaje = 'Soy un tipo feliz y afortunado';
console.log(mensaje.split(',')); // ["Soy un tipo feliz y afortunado"]</code></pre><blockquote>? Debes estar consiente de este comportamiento ya que puede ser de ayuda al depurar un error de este tipo, como por ejemplo pasar el separador equivocado al método <code>split()</code>.</blockquote><h1 id="como-dividir-usando-un-l-mite"><strong>Como dividir usando un límite</strong></h1><p>Si crees que el método <code>split()</code> solo toma únicamente el separador como parámetro opcional, déjame decirte que aún hay más. También puedes pasar al método <code>split()</code> un parámetro opcional llamado <code>límite</code>.</p><pre><code class="language-js">string.split(separador, límite);</code></pre><p>Como su nombre lo indica, el parámetro <code>límite</code> limita el número divisiones. Esto significa que el arreglo resultante solo tendrá un número de elementos igual al valor especificado en el parámetro límite.</p><p>En el ejemplo que se presenta a continuación, dividimos un <code>string</code> usando un espacio (' ') como separador. Además, pasamos el número<code>4</code> como el límite. El método <code>split()</code> retorna una arreglo de cuatro elementos, ignorando el resto.</p><pre><code class="language-js">let mensaje = 'Soy un tipo feliz y afortunado';
console.log(mensaje.split(' ', 4)); // ["Soy", "un", "tipo", "feliz"] </code></pre><h1 id="como-dividir-usando-una-regex"><strong>Como dividir usando una <em>regex</em></strong></h1><p>También podemos pasar una expresión regular (<em>regex</em>) como separador/divisor al método <code>split()</code>. Veamos el siguiente <code>string</code>: </p><pre><code class="language-js">let mensaje = 'El cielo es azul. ¡El pasto es verde! ¿Sabes de que color es el cielo?';</code></pre><p>Vamos a dividir este <code>string</code> justo en el punto (.), en los signos de exclamación (¡, !), y en los signos de interrogación (¿, ?). Para ello podemos escribir una <em>regex</em> que identifique el lugar donde están presentes esos caracteres. Entonces pasamos la <em>regex</em> al método <code>split()</code> invocándola desde la cadena presentada anteriormente.</p><p>La salida deberá verse de la siguiente manera:</p><pre><code class="language-js">let sentencias = mensaje.split(/. ¡|! ¿|[?]/);
console.log(sentencias);</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/espanol/news/content/images/2021/09/split_regex.jpg" class="kg-image" alt="split_regex" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2021/09/split_regex.jpg 600w, https://www.freecodecamp.org/espanol/news/content/images/2021/09/split_regex.jpg 908w" sizes="(min-width: 720px) 720px" width="908" height="202" loading="lazy"><figcaption>Dividiendo una cadena usando una <em>regex</em></figcaption></figure><p>Puedes usar el parámetro <code>limit</code> para limitar la salida a solo los primeros tres elementos, justo de esta manera:</p><pre><code class="language-js">let sentencias = mensaje.split(/. ¡|! ¿|[?]/,3);
console.log(sentencias);</code></pre><p>La salida deberá lucir de la siguiente manera:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/espanol/news/content/images/2021/09/split_regex_1.jpg" class="kg-image" alt="split_regex_1" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2021/09/split_regex_1.jpg 600w, https://www.freecodecamp.org/espanol/news/content/images/2021/09/split_regex_1.jpg 897w" sizes="(min-width: 720px) 720px" width="897" height="165" loading="lazy"><figcaption>Dividiendo una cadena usando una <em>regex</em> y un valor límite</figcaption></figure><blockquote>? Si deseas incluir en el arreglo de salida los caracteres usados en la expresión regular, lo único que tienes que hacer es modificar un poco la <em>regex</em>. Usa paréntesis para capturar los caracteres coincidentes. La regex final debería quedar asi <code>/(. ¡|! ¿|[?])/</code>.</blockquote><h1 id="como-reemplazar-los-caracteres-en-un-string-usando-el-m-todo-split-"><strong>Como reemplazar los caracteres en un <code>string</code> usando el método <code>split()</code></strong></h1><p>Tú puedes resolver problemas muy interesantes usando el método <code>split()</code> en combinación con otros métodos de <code>string</code> o <code>array</code>. Veamos uno aquí. Podría ser un caso de uso común reemplazar todas las ocurrencias de un carácter en un <code>string</code> con otro <code>string</code>.</p><p>Por ejemplo, tú querrías crear el <code>id</code> de un elemento HTML a partir del valor de su atributo <code>name</code>. El valor de <code>name</code> podría contener un espacio (' '), sin embargo en la especificación de HTML está establecido que el valor del <code>id</code> no debe contener espacios. Podemos hacer esto de la siguiente manera:</p><pre><code class="language-js">let nombre = 'Ivan Rivalcoba';
let subs = nombre.split(' ');
console.log(subs); // ["Ivan", "Rivalcoba"]

let union = subs.join('-');
console.log(union); // Ivan-Rivalcoba</code></pre><p>Como podrás observar la variable <code>nombre</code> tiene almacenado al primer nombre (Ivan) y el apellido (Rivalcoba) separados por un espacio. Aquí lo que primero podemos hacer es dividir la cadena de caracteres usando el espacio como separador. Lo anterior nos regresará un arreglo con dos elementos, el primer nombre y el apellido de la siguiente manera: <code>['Ivan', 'Rivalcoba']</code>.</p><p>Luego usamos el método <code>join()</code> para unir los elementos del arreglo usando el carácter <code>-</code>. El método <code>join()</code> regresa un <code>string</code> con cada uno de los elementos del arreglo original unidos por el carácter que le es pasado como argumento. El resultado final de todo este proceso es <code>Ivan-Rivalcoba</code>.</p><h1 id="es6-como-dividir-con-la-desestructuraci-n-de-un-arreglo"><strong><strong>ES6: </strong>Como dividir con la desestructuración de un arreglo</strong></h1><p>ECMAScript2015 (ES6) introdujo una innovadora forma de extraer un elemento de un arreglo y asignarlo a una variable. Esta sintaxis inteligente es conocida como desestructuración de arreglos. Podemos usar el método <code>split()</code> para asignar la salida a una variable de una manera muy sencilla con menos código.</p><pre><code class="language-js">let nombre = 'Ivan Rivalcoba';
let [primerNombre, apellido] = nombre.split(' ');
console.log(primerNombre, apellido);</code></pre><p>Aquí, dividimos la variable <code>nombre</code> usando el carácter espacio como separador. Posteriormente realizamos la asignación de los valores obtenidos como arreglo del <code>split()</code> a un par de variables (<code>primerNombre</code> y <code>apellido</code>) usando la sintaxis de desestructuración de un <code>array</code>.</p><h1 id="antes-de-finalizar-"><strong>Antes de finalizar<strong>...</strong></strong></h1><p>? ¿Te gustaría programar y aprender junto conmigo? Puedes encontrar el mismo contenido en inglés en este canal de YouTube. Solo abre tu editor de código favorito y listo.</p><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 56.178243243243244%;" class="fluid-width-video-wrapper">
            <iframe src="https://www.youtube.com/embed/xbHFdstSpvc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" name="fitvid0" style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 22px; vertical-align: middle; position: absolute; top: 0px; left: 0px; width: 740px; height: 415.719px;"></iframe>
          </div>
        </div>
      </figure><p>Espero hayas encontrado este artículo intuitivo, y que te haya ayudado entender de forma clara el método <code>split()</code> de JavaScript. Es importante que practiques y practiques continuamente de modo que puedas dominar estas técnicas. Puedes encontrar todos los códigos de ejemplo en su idioma original en <em><a href="https://github.com/atapas/js-handbook-examples/blob/master/string/split/index.js">code examples </a></em><a href="https://github.com/atapas/js-handbook-examples/blob/master/string/split/index.js">en mi respositorio de GitHub</a>.</p><p>Conectemos. Puedes encontrarme activo en <a href="https://twitter.com/tapasadhikary">Twitter (@tapasadhikary)</a>. Siéntete en libertar de seguirme.</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
