Particionamiento de arrays con JavaScript Reduce

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 cómo particionar una matriz basada en una función proporcionada utilizando JavaScript. Utilizaremos el método Array.prototype.reduce() para acumular los valores particionados en una matriz mientras verificamos los cambios en la salida de la función proporcionada. Al final de este laboratorio, tendrás una comprensión sólida de cómo particionar matrices en JavaScript.


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/cond_stmts("Conditional Statements") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") subgraph Lab Skills javascript/variables -.-> lab-28541{{"Particionamiento de arrays con JavaScript Reduce"}} javascript/data_types -.-> lab-28541{{"Particionamiento de arrays con JavaScript Reduce"}} javascript/arith_ops -.-> lab-28541{{"Particionamiento de arrays con JavaScript Reduce"}} javascript/comp_ops -.-> lab-28541{{"Particionamiento de arrays con JavaScript Reduce"}} javascript/cond_stmts -.-> lab-28541{{"Particionamiento de arrays con JavaScript Reduce"}} javascript/higher_funcs -.-> lab-28541{{"Particionamiento de arrays con JavaScript Reduce"}} javascript/destr_assign -.-> lab-28541{{"Particionamiento de arrays con JavaScript Reduce"}} end

Algoritmo para particionar una matriz

Para particionar una matriz, siga estos pasos:

  1. Abra la Terminal/SSH y escriba node para comenzar a practicar la codificación.
  2. Aplique la función fn proporcionada a cada valor en la matriz arr dada.
  3. Divida la matriz cada vez que fn devuelva un nuevo valor.
  4. Utilice Array.prototype.reduce() para crear un objeto acumulador que contenga la matriz resultante y el último valor devuelto por fn.
  5. Utilice Array.prototype.push() para agregar cada valor en arr a la partición adecuada en la matriz acumulador.
  6. Devuelva la matriz resultante.

A continuación, se muestra la implementación del código:

const partitionBy = (arr, fn) =>
  arr.reduce(
    ({ res, last }, v, i, a) => {
      const next = fn(v, i, a);
      if (next !== last) res.push([v]);
      else res[res.length - 1].push(v);
      return { res, last: next };
    },
    { res: [] }
  ).res;

Uso de ejemplo:

const numbers = [1, 1, 3, 3, 4, 5, 5, 5];
partitionBy(numbers, (n) => n % 2 === 0); // [[1, 1, 3, 3], [4], [5, 5, 5]]
partitionBy(numbers, (n) => n); // [[1, 1], [3, 3], [4], [5, 5, 5]]

Resumen

¡Felicitaciones! Has completado el laboratorio de partición de matrices. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.