如何使用Underscore.js实现基于距离区间的自定义分组?
用Underscore.js按数值区间分组的解决方案
嘿,我懂你现在的需求——之前用Underscore做整数分组顺顺当当,但现在要按0-1、1-2这种小数区间来分组对吧?其实核心就是给每个数值生成对应的分组标识(key),然后用Underscore的_.groupBy()方法就能轻松搞定!
核心思路
我们需要把每个距离值映射到它所属区间的起始整数:
- 0 ≤ 距离 < 1 → 分组key为
0 - 1 ≤ 距离 < 2 → 分组key为
1 - 以此类推
这里用Math.floor()函数就刚好合适,它会把小数向下取整,完美匹配我们的区间划分逻辑。
代码示例
直接上可运行的代码:
// 假设你已经引入了Underscore.js(浏览器环境直接用全局变量_,Node.js需先require) // const _ = require('underscore'); // 你的距离数组 const distances = [0, 0.224, 0.50, 1.22]; // 用_.groupBy实现区间分组 const groupedDistances = _.groupBy(distances, function(distance) { // 生成对应区间的分组key return Math.floor(distance); }); console.log(groupedDistances);
输出结果
运行后你会得到完全符合预期的分组:
{ 0: [0, 0.224, 0.50], 1: [1.22] }
扩展灵活用法
如果之后需要调整区间步长(比如改成0-0.5、0.5-1这种),只需要修改key的生成逻辑就行:
// 按0.5步长分组 const groupedByHalf = _.groupBy(distances, function(distance) { return Math.floor(distance / 0.5); });
这样0-0.5的数值会分到key0,0.5-1分到key1,以此类推,非常灵活。
内容的提问来源于stack exchange,提问作者Nimesh khatri
相关产品推荐
相关产品推荐

