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