使用下划线groupby按颜色对汽车阵列进行分组
Using underscore groupby to group an array of cars by their colour
我有一排汽车。
car = {
make: "nissan",
model: "sunny",
colour: "red"
};
如何使用underscore.js按颜色对数组进行分组?
我尝试了一些组合,但我真的不确定如何指定迭代器条件:
var carsGroupedByColor = _.groupBy(cars, false, colour);
var carsGroupedByColor = _.groupBy(vars, false, function(cars){ return cars[colour]; };
他们每次都会返回数组中的所有内容。
您不需要false
第二个参数,以下参数将起作用:
var redCars = _.groupBy(cars, 'colour');
注意,第二参数可以是function
或string
。如果是string
,则按该属性名称对组进行下划线。
取自文件:
将集合拆分为多个集合,按每个集合的运行结果分组值通过迭代器。如果迭代器是字符串而不是函数,根据迭代器对每个值命名的属性进行分组。
下面是一个工作示例。
我从未使用过下划线js,但会不会与他们的文档不同
var groupedCars = _.groupBy(cars, function(car) { return car.make; });
事实上,我认为这是更正确的,因为它指出,如果迭代器是一个字符串,它会根据具有该字符串名称的对象中的属性进行分组。
var groupedCars = _.groupBy(cars, "make");
如果你只想要红色的汽车(尽管我想你真的应该使用过滤器),那么你可以做以下
var redCars = groupedCars["red"];
使用过滤器代替
查找列表中的每个值,返回一个通过真值测试(迭代器)的所有值的数组。委托本机筛选器方法(如果存在)。
var redCars = _.filter(cars, function(car) { return car.colour == "red" });
var data = [
{
"name": "jim",
"color": "blue",
"age": "22"
},
{
"name": "Sam",
"color": "blue",
"age": "33"
},
{
"name": "eddie",
"color": "green",
"age": "77"
},
{
"name": "Dheeraj",
"color": "blue",
"age": "25"
},
{
"name": "Suraj",
"color": "green",
"age": "25"
}
];
var result = _.groupBy(data,"color");
console.log(result);
相关文章:
- 使用正则表达式捕获“”并分割成阵列
- AngularJS卡片转盘:将卡片返回到阵列的末尾
- 从不同的对象创建阵列
- 阵列中随机图像的问题
- 在特定条件下从存储在localStorage中的阵列中删除对象
- 如何将所有同级存储在动态本地存储阵列中
- 从localStorage添加和检索阵列
- angular.注射器阵列值未返回当前值
- 流星蒙戈的返回阵列
- 从2D RGB阵列创建图像
- 构建画布RGB值的2D阵列
- 图像阵列预加载时显示沙漏光标
- 当会话存储阵列中存在大量元素时,如何从中删除元素
- 相对于角度控制器中的另一个阵列过滤阵列项目
- 为什么不是't我的“;虚拟的“;阵列工作
- Json阵列的详细信息显示在三页的angularjs中
- 来自阵列的大小为N的组合
- 用替换或拼接替换阵列中的编号
- d3中的过滤阵列
- 使用下划线groupby按颜色对汽车阵列进行分组