javascript - 如何在 lodash/下划线中强制使用 arity?

标签 javascript underscore.js lodash

我经常发现自己想要在 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/

相关文章:

JavaScript:onMouseOver 事件无法与其他事件一起正常工作

javascript - Ionic/Angular - 刷新应用简历上的文章

javascript - 从嵌套对象数组中获取具有空值的对象

javascript - Backbone和下划线js为什么需要使用bindAll

javascript - 在数组中的每个项目上调用方法的简洁方法

javascript - 在javascript中折叠属性值上的对象数组

javascript - NodeJs 请求的资源上不存在 'Access-Control-Allow-Origin' header

javascript - 变量未定义(从 HTML 发送到 JS 文件)

javascript - 使用 lodash 反转范围

jQuery!我无法正确使用 _.debounce