作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我经常发现自己想要在 map
迭代器中强制一元元数,这样只有第一个参数 - 项目值 - 被传递(省略键/索引和迭代器),以避免重载组合功能。
我需要这种情况的示例如下:
var parts = [
'projectIds',
[ 1, 6, 7 ],
'properties',
[ 'name', 'startDate' ]
];
function pathFrom( parts ){
return _( parts )
// This is the tricky bit:
.map( _.partialRight( _.result, 'toString' ) )
.join( '/' )
.valueOf();
};
alert( pathFrom( parts ) );
我想要的输出是 projectIds/1,6,7/properties/name,startDate
,但实际上最终是 p/6/o/
,因为迭代索引被传递并从值中提取(p
是 'projectIds'[0]
,6
是 [1,6 ,7][1]
,o
是 'properties'[2]
等)。
如何锁定映射迭代器的数量,以便仅提取第一个参数,而丢弃其余参数?
最佳答案
仅供引用,lodash 现在有一个 _.ary函数可以满足您的需求。
var path = require('path');
[ 'foo', 'bar', 'baz' ].map(_.ary(path.resolve, 1));
// => [ '/<cwd>/foo', '/<cwd>/bar', '/<cwd>/baz' ]
关于javascript - 如何在 lodash/下划线中强制使用 arity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25851568/
我是一名优秀的程序员,十分优秀!