映射方法对除最后一个数组项外的所有数组项生效

Map method to effect all EXCEPT last array item

本文关键字:数组 最后一个 方法 映射      更新时间:2023-09-26

我正在研究一个挑战,它接受一个字符串,然后返回所有大写字符串,一些替换/替换元音,并在每个单词后面有"!!!!"。

function gordon(a){
return a.split(" ").map(function(x){return x.replace(/[aA]/g,"@").replace(/[aeiou]/g,"*") + "!!!! ";}).join("").toUpperCase();
}

这段代码工作,并返回正确的答案,除了最后一个"!!!"的末尾有一个空白。

我问这个的主要原因是因为我觉得这是我在map方法或for循环中经常遇到的东西。如果想要影响除最后一个元素以外的所有元素,该怎么做?有什么简单的方法可以做到这一点吗?

由于您希望在之后的单词之间有空格,因此将其放在.join()调用中而不是在!!!!之后。

function gordon(a){
    return a.split(" ")
        .map(function(x){
            return x.replace(/[aA]/g,"@").replace(/[aeiou]/g,"*") + "!!!!";
        })
        .join(" ")
        .toUpperCase();
}

.join()的参数是在每个数组元素连接到结果字符串时放在它们之间的分隔符。