使用地图功能

问题描述:

我想遍历数组,并做一些事来每个元素使用地图功能

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

d = d.map(function(d){ 
    return d.toString(); 
}) 

这些功能是否正常工作时减少JavaScript代码。但是在它出现太多次之后,代码变得非常混乱。

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

+0

你可以告诉你真正在这里做什么,我的意思是问题。 – Mritunjay 2015-01-21 04:10:27

+1

*“但是出现太多次后,代码变得非常混乱。”*你的意思是你是否一遍又一遍地调用相同的代码?创建一个功能! – 2015-01-21 04:13:01

如果您使用的是JavaScript版本的支持arrow functions,您可以用这些:

d = d.map((d) => _.omit(d, 'password')); 

或者如果你重复相同的代码很多,你可以做辅助功能:

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

d = removePasswords(d); 

如果你前一后进行了很多map■一个,你可以将它们的内容

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

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

你可能要考虑使用Coffeescript如果你觉得JavaScript是太冗长:

d = d.map (d) -> _.omit(d, 'password') 
+0

我明白了。让我也测试一下,谢谢! – 2015-01-21 04:26:52

+0

d = d.map((d)=> _.omit(d,'secret'));我说SyntaxError:意外的令牌> .. @@ – 2015-01-21 04:29:54

+0

@ChandlerLee然后,最有可能意味着你没有使用支持箭头功能的JS版本。大多数浏览器还没有,但是您可以使用[traceur编译器](https://github.com/google/traceur-compiler)将ES6编译为适合浏览器的JavaScript。 – JLRishe 2015-01-21 04:34:41