【问题标题】:What's the most readable way to write nested functions in javascript?在 javascript 中编写嵌套函数最易读的方法是什么?
【发布时间】:2017-07-07 08:03:39
【问题描述】:
我写的这段代码看起来不像它应该的那样可读:
function getShortMessages(messages) {
return messages.filter((messages) => {
return messages.message.length < 50
}).map((object) => {
return object.message
})
}
【问题讨论】:
标签:
javascript
readability
code-readability
【解决方案1】:
老实说,我觉得没问题。您可以做的是将“50”替换为 js 文件中的变量。
var MESSAGE_MAX_LENGTH= 50;
并重新定位你处理函数的方式
function getShortMessages(messages) {
return messages
.filter( (messageObject) => {
return messageObject.message.length < MESSAGE_MAX_LENGTH
})
.map( (messageObject) => {
return messageObject.message
});
}
我还发现,当寻址messages 的数组并通过filter 函数运行时,最好不要调用对象messages,而是调用item 或messageObject
另外,map 函数中的object 有点不祥,比如再叫它messageObject 这样你就知道你具体用的是什么了
【解决方案2】:
在 ES 6 中,您可以使用快捷方式,如下所示:
function getShortMessages(messages) {
return messages.filter( messages => messages.message.length < 50).map( object => object.message )
}
这取决于你哪一个是可读的。在一行中,您不需要使用{} 或return,如果您使用数组函数,1 个参数也不需要(messages) =>,您只能使用messages =>
【解决方案3】:
function getShortMessages(messages) {
return messages.filter(message => message.message.length < 50)
.map(message => message.message)
}