¿Cómo contar la cantidad de tipos de datos en una array en JavaScript?

Dada una array y la tarea es contar la cantidad de tipos de datos utilizados para crear esa array.

Ejemplo:

Entrada: [1, verdadero, “hola”, [], {}, indefinido, función(){}] 
Salida:
booleano: 1, 
función: 1, 
número: 1, 
objeto: 2, 
string: 1, 
indefinido: 1 
}
Entrada: [función(){}, nuevo Objeto(), [], {}, NaN, Infinito, indefinido, nulo, 0] 
Salida:
función: 1, 
número: 3, 
objeto: 4, 
indefinido: 1 
}

strong> Enfoque 1: en este enfoque, usamos el método Array.reduce() e inicializamos el método con un objeto vacío. 

Javascript

<script>
// JavaScript program to count number of data types in an array
let countDtypes = (arr) => {
    return arr.reduce((acc, curr) => {
 
            // Check if the acc contains the type or not
            if (acc[typeof curr]) {
 
                // Increase the type with one
                acc[typeof curr]++;
            } else {
 
                /* If acc not contains the type
                then initialize the type with one */
                acc[typeof curr] = 1
            }
            return acc
        }, {}) // Initialize with an empty array
}
 
 
 
let arr = [function() {}, new Object(), [], {},
 NaN, Infinity, undefined, null, 0];
  
console.log(countDtypes(arr));
</script>

Producción:

{
   function: 1,
   number: 3,
   object: 4,
   undefined: 1
}

Enfoque 2: en este enfoque, usamos el método Array.forEach() para iterar la array. Y crea una array vacía y en cada iteración, verificamos si el tipo de iteración actual está presente en el objeto recién creado o no. En caso afirmativo, simplemente aumente el tipo con 1; de lo contrario, cree una nueva clave con el nombre del tipo e inicialice con 1.

Javascript

<script>
// JavaScript program to count number of data types in an array
let countDtypes = (arr) => {
    let obj = {}
 
    arr.forEach((val) => {
 
        // Check if obj contains the type or not
        if (obj[typeof val]) {
 
            // Increase the type with one
            obj[typeof val]++;
        } else {
 
            // Initialize a key (type) into obj
            obj[typeof val] = 1;
        }
    })
    return obj
}
 
 
 
let arr = [function() {}, new Object(), [], {},
    NaN, Infinity, undefined, null, 0
];
 
console.log(countDtypes(arr));
</script>

Producción:

{
  boolean: 1,
  function: 1,
  number: 1,
  object: 2,
  string: 1,
  undefined: 1
}

Publicación traducida automáticamente

Artículo escrito por _saurabh_jaiswal 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 *