Filtrado de valores no únicos de una matriz basado en función

JavaScriptJavaScriptBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos una función de JavaScript que filtra los valores no únicos de una matriz en función de una función comparadora proporcionada. Utilizando Array.prototype.filter() y Array.prototype.every(), crearemos una nueva matriz que contiene solo los valores únicos en función de la función comparadora. Este laboratorio tiene como objetivo mejorar su comprensión de los métodos de matriz de JavaScript y cómo utilizarlos para manipular datos.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/obj_manip("Object Manipulation") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28332{{"Filtrado de valores no únicos de una matriz basado en función"}} javascript/data_types -.-> lab-28332{{"Filtrado de valores no únicos de una matriz basado en función"}} javascript/arith_ops -.-> lab-28332{{"Filtrado de valores no únicos de una matriz basado en función"}} javascript/comp_ops -.-> lab-28332{{"Filtrado de valores no únicos de una matriz basado en función"}} javascript/obj_manip -.-> lab-28332{{"Filtrado de valores no únicos de una matriz basado en función"}} javascript/higher_funcs -.-> lab-28332{{"Filtrado de valores no únicos de una matriz basado en función"}} end

Filtrado de valores no únicos de una matriz con una función

Para comenzar a practicar la codificación, abra la Terminal/SSH y escriba node.

Este código filtra los valores no únicos de una matriz, en función de una función comparadora proporcionada. Estos son los pasos para lograr esto:

  1. Utilice Array.prototype.filter() y Array.prototype.every() para crear una nueva matriz con solo los valores únicos en función de la función comparadora fn.
  2. La función comparadora toma cuatro argumentos: los valores de los dos elementos que se están comparando y sus índices.
  3. La función filterNonUniqueBy implementa los pasos anteriores y devuelve la matriz de valores únicos.
const filterNonUniqueBy = (arr, fn) =>
  arr.filter((v, i) => arr.every((x, j) => (i === j) === fn(v, x, i, j)));

Este es un ejemplo de cómo utilizar esta función:

filterNonUniqueBy(
  [
    { id: 0, value: "a" },
    { id: 1, value: "b" },
    { id: 2, value: "c" },
    { id: 1, value: "d" },
    { id: 0, value: "e" }
  ],
  (a, b) => a.id === b.id
); // [ { id: 2, value: 'c' } ]

Este código es conciso, claro y coherente y debería funcionar como se espera.

Resumen

¡Felicitaciones! Has completado el laboratorio de Filtrado de valores no únicos de una matriz basado en función. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.