Underscore.js _.partitionBy () Метод
Метод _.partitionBy () принимает массив и функцию и, следовательно, генерирует секционированный массив на основе условий данной функции.
Синтаксис:
_.partitionBy (массив, функция)
Параметры:
- array: Данный массив, из которого должен быть создан секционированный массив.
- function: функция, содержащая условия для разделения массива.
Возвращаемое значение: этот метод возвращает вновь созданный многораздельный массив.
Примечание: это не будет работать в обычном JavaScript, потому что для этого требуется установка библиотеки underscore.js.
Библиотеку contrib underscore.js можно установить с помощью команды npm install underscore-contrib –save.
Пример 1. В этом примере мы создадим секционированный массив четных и нечетных элементов, используя этот метод.
// 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); |
Выход:
Исходный массив: [ 1, 2, 3, 2, 1, 1, 5, 6, 6, 6, 7, 8, 9, 9, 10 ] Секционированный массив: [ [1], [2], [3], [2], [1, 1, 5], [6, 6, 6], [7], [8], [9, 9], [10] ]
Пример 2: В этом примере мы создадим секционированный массив всех идентичных элементов.
// 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); |
Выход:
Исходный массив: [ 1, 2, 3, 2, 1, 1, 5, 6, 6, 6, 7, 8, 9, 9, 10 ] Секционированный массив: [ [1], [2], [3], [2], [1, 1], [5], [6, 6, 6], [7], [8], [9, 9], [10] ]
Пример 3: В этом примере мы создадим секционированный массив всех отрицательных и положительных чисел.
// 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); |
Выход:
Исходный массив: [ 1, 2, 3, 2, -1, -1, 5, 6, -6, -6, -7, -8, 9, 9, 10 ] Секционированный массив: [ [1, 2, 3, 2], [-1, -1], [5, 6], [-6, -6, -7, -8], [9, 9, 10] ]