📜  Underscore.js _.partitionBy() 方法

📅  最后修改于: 2022-05-13 01:56:51.958000             🧑  作者: Mango

Underscore.js _.partitionBy() 方法

_.partitionBy() 方法接受一个数组和一个函数,因此根据给定函数的条件生成一个分区数组。

句法:

_.partitionBy(array, function)

参数:

  • 数组:要从中创建分区数组的给定数组。
  • 函数:包含要对数组进行分区的条件的函数。

返回值:该方法返回一个新创建的分区数组。

注意:这在普通 JavaScript 中不起作用,因为它需要安装 underscore.js 贡献库。

underscore.js contrib 库可以使用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);

输出:

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 ]
]

示例 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);

输出:

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 ]
]

示例 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);

输出:

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 ]
]