Escriba un programa para convertir una array de objetos en una string CSV que contenga solo las columnas especificadas mediante JavaScript

Cuando queremos almacenar múltiples valores en una variable, en lugar de una variable, usamos una array. lo que le permite almacenar múltiples tipos de datos, por ejemplo, podría tener una string, un número entero, etc.

En este artículo, aprenderemos a convertir los objetos de array en datos de string CSV. 

Objetos de array dados (clave: valor) a valores separados por comas de string CSV y claves como encabezado.

Input :  [
             Name: "geek", 
             Roll Number:  121,
             Age: 56
         ] 
           
Output:  Name, Roll Number, Age
         geek, 121, 56

Antes de entrar en el código, debemos saber algo sobre las siguientes funciones de array.

Función Map(): función Array.prototype.map() utilizada cuando queremos transformar cada valor de la array y queremos obtener una nueva array de ella.

Función Object.Key() : el método object.keys() devuelve las propiedades clave de esta array. Como necesitamos un encabezado para los datos CSV, nuestro encabezado será las claves de un objeto, por lo que para obtener el encabezado usamos el método Object.key().

Función Push(): El método Array.push() se usa para agregar uno o varios elementos a una array. Devuelve la nueva longitud de la array formada.

Función Join(): El método Array.prototype.join() se utiliza para unir los valores de una array en una string. Los valores de la string estarán separados por un separador específico y su valor predeterminado es una coma (,).

Acercarse:

  • Cree primero una array vacía para almacenar todos los datos de un objeto en forma de filas.
  • Usando el método Object.keys() , obtenga todas las claves de un objeto que será la primera fila de la tabla CSV.
  • El método map() itera sobre todos los objetos y agrega todos los valores a la array «csvRow []» junto con el separador de coma (,) usando el método join().
  • El método push() empujará todos los datos a la array «csvRow[]» obtenida por map() y Objects.keys().
  • después de mapear cada fila, se agregará una nueva línea mediante el método de combinación («\n»).

A continuación se muestra la implementación del enfoque anterior:

índice.js


<script>
    const objectToCsv = function (data) {

        const csvRows = [];

        /* Get headers as every csv data format 
        has header (head means column name)
        so objects key is nothing but column name 
        for csv data using Object.key() function.
        We fetch key of object as column name for 
        csv */
        const headers = Object.keys(data[0]);

        /* Using push() method we push fetched 
           data into csvRows[] array */
        csvRows.push(headers.join(','));

        // Loop to get value of each objects key
        for (const row of data) {
            const values = headers.map(header => {
                const val = row[header]
                return `"${val}"`;
            });

            // To add, sepearater between each value
            csvRows.push(values.join(','));
        }

        /* To add new line for each objects values
           and this return statement array csvRows
           to this function.*/
        return csvRows.join('\n');
    };

    const data = [{
        "firstname": "geeks",
        "lastname": "org",
        "age": 12
    },
    {
        "firstname": "devendra",
        "lastname": "salunke",
        "age": 31
    },
    {
        "firstname": "virat",
        "lastname": "kohli",
        "age": 34
    },
    ];

    // Data passed as parameter 
    const csvData = objectToCsv(data);
    console.log(csvData); 
</script>

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *