如何使用下划线的链方法返回多维数组中的第一项
How do you use underscore's chain method to return the first item in a multidimensional array?
>假设我有一个数组数组,我想返回数组中每个数组的第一个元素:
array = [[["028A","028B","028C","028D","028E"],
["028F","0290","0291","0292","0293"],
["0294","0295","0296","0297","0298"],
["0299","029A","029B","029C","029D"],
["029E","029F","02A0","02A1","02A2"]],
[["02A3","02A4"],
["02A5", "02A6"]];
我知道我可以做这样的事情:
var firsts = [];
_.each(array, function(item){
_.each(item, function(thisitem){
firsts.push(_.first(thisitem));
});
});
但是,如果我想使用下划线的_.chain()
方法呢?只是学习强调,到目前为止似乎非常有用。
你可以
用flatten
来做到这一点,map
这样:
var firsts = _.chain(array)
.flatten(true) // This true is important.
.map(function(a) { return a[0] })
.value();
演示:http://jsfiddle.net/ambiguous/cm3CJ/
您可以使用 flatten(true)
将数组的数组转换为数组的数组,然后map
剥离每个内部数组的第一个元素。
如果你想要比map
短的东西,你可以使用 pluck
来拉出内部数组的第一个元素:
var firsts = _.chain(array)
.flatten(true) // This true is important.
.pluck(0)
.value();
演示:http://jsfiddle.net/ambiguous/pM9Hq/
无论如何,_.pluck
只是一个map
电话:
// Convenience version of a common use case of `map`: fetching a property.
_.pluck = function(obj, key) {
return _.map(obj, function(value){ return value[key]; });
};
这个看起来更像你在 Ruby 中使用的.map(&:first)
,所以有些人可能更熟悉它,一旦你习惯了pluck
,它就会更简洁。如果你真的想要一些Rubyish的东西,你可以使用一个非匿名函数,map
:
var first = function(a) { return a[0] };
var firsts = _.chain(array)
.flatten(true) // This true is important.
.map(first)
.value();
相关文章:
- 第一个字第一个字符第二个字第二个字符,一直到数组结束
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 如何在Java Script中比较二维数组和一维数组,并将常见数据存储在另一个数组中
- 如何在javascript中使用2个一维数组创建层次结构树
- 获取字符串中的匹配项数组作为索引
- PHP json_encode不适用于一维数组
- 如何在一维数组中存储 3 个随机数,然后在 Javascript 中收到警报
- 将字符串的一维数组转换为二维数组
- Javascript使用map从一维数组创建一个二维数组
- 如何使用 wp_localize_script 更改 JavaScript 项数组
- PHP 循环通过多维到一维数组
- 使用JavaScript将对象的多维数组转换为一维数组
- 如何在javascript中最有效地重命名项数组中的键
- 用一维数组过滤多维数组
- 如何循环遍历对象数组,并使用lodash检查一个值是否与对象中的字符串或项数组中的值匹配
- mongoose.js:我如何从引用的子数组中删除一个属性,同时使用填充和使用其中一个子数组字段作为过滤器
- 使用Angulajs在嵌套数组中动态添加一个子数组
- MVC 3应用程序中的基本javascript和knockout.js:针对myCustomObject项数组的循环中f
- 在JS中根据需要的组大小将一维数组转换为多维数组的更好方法
- 比较二维数组和一维数组并删除匹配项(JavaScript)