使用map函数时减少javascript代码

Shi*_*Lee 1 javascript dictionary lodash

我想迭代一个数组并对每个元素做一些事情

d = d.map(function(d){
    return _.omit(d, 'password');
})

d = d.map(function(d){
    return d.toString();
})
Run Code Online (Sandbox Code Playgroud)

这些功能正常.但是在它出现太多次后,代码变得非常混乱.

所以我想知道是否有更简单的方法来做我想做的事情?我希望只使用bind或apply关键字或某些模块(可能是lodash或下划线......)将代码减少到一行.这可能吗?

JLR*_*she 5

如果您使用的是支持箭头功能的JavaScript版本,则可以使用以下内容:

d = d.map((d) => _.omit(d, 'password'));
Run Code Online (Sandbox Code Playgroud)

或者,如果你重复相同的代码,你可以创建辅助函数:

function removePasswords(d) {
    return d.map(function (d) {
        return _.omit(d, 'password');
    });
}

d = removePasswords(d);
Run Code Online (Sandbox Code Playgroud)

如果你一个接map一个地执行很多,你可以结合他们的内容

d = d.map(function(d) {
    return _.omit(d, 'password').toString();
});
Run Code Online (Sandbox Code Playgroud)

否则,我认为它不会比你已经拥有的要短得多.它已经很短了.

如果您认为JavaScript过于冗长,您可能需要考虑使用Coffeescript:

d = d.map (d) -> _.omit(d, 'password')
Run Code Online (Sandbox Code Playgroud)