El método _.partitionBy() toma una array y una función y, por lo tanto, genera una array particionada según las condiciones de la función dada.
Sintaxis:
_.partitionBy(array, function)
Parámetros:
- array: la array dada a partir de la cual se creará la array particionada.
- función: la función que contiene las condiciones para que se particione una array.
Valor devuelto: este método devuelve una array particionada recién creada.
Nota: Esto no funcionará en JavaScript normal porque requiere que se instale la biblioteca de contribución underscore.js.
La biblioteca de contribución underscore.js se puede instalar mediante npm install underscore-contrib –save.
Ejemplo 1: En este ejemplo, crearemos una array dividida de elementos pares e impares usando este método.
// Defining underscore contrib variable var _ = require('underscore-contrib'); // Array var array = [1, 2, 3, 2, 1, 1, 5, 6, 6, 6, 7, 8, 9, 9, 10]; // Creating partitioned array var p_arr = _.partitionBy(array, _.isOdd); console.log("Original Array : ", array); console.log("Partitioned Arrayy: ", p_arr);
Producción:
Original Array : [ 1, 2, 3, 2, 1, 1, 5, 6, 6, 6, 7, 8, 9, 9, 10 ] Partitioned Arrayy: [ [ 1 ], [ 2 ], [ 3 ], [ 2 ], [ 1, 1, 5 ], [ 6, 6, 6 ], [ 7 ], [ 8 ], [ 9, 9 ], [ 10 ] ]
Ejemplo 2: En este ejemplo, crearemos una array dividida de todos los elementos idénticos.
// Defining underscore contrib variable var _ = require('underscore-contrib'); // Array var array = [1, 2, 3, 2, 1, 1, 5, 6, 6, 6, 7, 8, 9, 9, 10]; // Creating partitioned array var p_arr = _.partitionBy(array, _.identity); console.log("Original Array : ", array); console.log("Partitioned Arrayy: ", p_arr);
Producción:
Original Array : [ 1, 2, 3, 2, 1, 1, 5, 6, 6, 6, 7, 8, 9, 9, 10 ] Partitioned Arrayy: [ [ 1 ], [ 2 ], [ 3 ], [ 2 ], [ 1, 1 ], [ 5 ], [ 6, 6, 6 ], [ 7 ], [ 8 ], [ 9, 9 ], [ 10 ] ]
Ejemplo 3: En este ejemplo, crearemos una array dividida de todos los números negativos y positivos.
// Defining underscore contrib variable var _ = require('underscore-contrib'); // Array var array = [1, 2, 3, 2, -1, -1, 5, 6, -6, -6, -7, -8, 9, 9, 10]; // Creating partitioned array var p_arr = _.partitionBy(array, function(val) { return val>0 }); console.log("Original Array : ", array); console.log("Partitioned Arrayy: ", p_arr);
Producción:
Original Array : [ 1, 2, 3, 2, -1, -1, 5, 6, -6, -6, -7, -8, 9, 9, 10 ] Partitioned Arrayy: [ [ 1, 2, 3, 2 ], [ -1, -1 ], [ 5, 6 ], [ -6, -6, -7, -8 ], [ 9, 9, 10 ] ]