Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';用javascript编写嵌套函数的最可读的方法是什么?_Javascript_Readability_Code Readability - Fatal编程技术网

什么';用javascript编写嵌套函数的最可读的方法是什么?

什么';用javascript编写嵌套函数的最可读的方法是什么?,javascript,readability,code-readability,Javascript,Readability,Code Readability,示例:我编写的这段代码看起来不那么可读: function getShortMessages(messages) { return messages.filter((messages) => { return messages.message.length < 50 }).map((object) => { return object.message }) } 函数getShortMessages(消息){ 返回消息。筛

示例:我编写的这段代码看起来不那么可读:

function getShortMessages(messages) {
    return messages.filter((messages) => {
        return messages.message.length < 50
    }).map((object) => {
        return object.message
    })
}
函数getShortMessages(消息){
返回消息。筛选器((消息)=>{
返回消息.message.length<50
}).map((对象)=>{
返回object.message
})
}
函数getShortMessages(消息){
返回messages.filter(message=>message.message.length<50)
.map(message=>message.message)

}
老实说,我觉得没问题。您可以做的是在js文件中用一个变量替换“50”

var MESSAGE_MAX_LENGTH= 50;
并按照处理函数的方式重新定位一点

function getShortMessages(messages) {
    return messages
        .filter( (messageObject) => { 
            return messageObject.message.length < MESSAGE_MAX_LENGTH 
        })
        .map( (messageObject) => {
            return messageObject.message 
        });
}
函数getShortMessages(消息){
返回消息
.filter((messageObject)=>{
return messageObject.message.length{
返回messageObject.message
});
}
我还发现,当寻址
消息数组
并运行
过滤器
函数时,最好不要调用对象
消息
,而是调用
消息对象


此外,
map
函数中的
object
有点不祥,请再次将其称为
messageObject
,这样您就知道在ES 6中具体使用的是什么了。您可以使用快捷方式,如下所示:

function getShortMessages(messages) {
    return messages.filter( messages => messages.message.length < 50).map( object => object.message )
}
函数getShortMessages(消息){
返回messages.filter(messages=>messages.message.length<50).map(object=>object.message)
}
这取决于你哪一个是可读的。在一行中,您不需要使用
{}
返回
,如果您使用数组函数,使用1个参数,您也不需要
(messages)=>
,您只能使用
messages=>