我有一个要对其执行处理的字符串:

1)用“。”分隔。然后做一个数组

2)使每个单词和字符都小写

3)修剪数组元素

我知道我们可以通过分别编码每个步骤来做到这一点,但是我想一行完成。
但这让我感到困惑,为什么我不能仅使用地图中的最后一个方法使用map(s => s.toLowerCase() && s.trim())来做到这一点?

任何建议将不胜感激。



let trapSt = '  I Was Sent = I Sent. To Earth = To Moon     '
trapSt = trapSt.split(".")
only_LowerCase_Works_Here = trapSt.map(s => s.trim() && s.toLowerCase()); // ??? why only s.toLowerCase() works here???!!!!
only_Trim_Works_Here = trapSt.map(s => s.toLowerCase() && s.trim()); // ??? why only s.trim() works here???!!!!

console.log(only_LowerCase_Works_Here);
console.log(only_Trim_Works_Here); 

最佳答案

因为toLowerCasetrim不会在原位置修改字符串,所以它们在修改后返回字符串。

&&与以下内容不同:

s.toLowerCase().trim()


这就是你想要的。

尝试这个:

let trapSt = '  I Was Sent = I Sent. To Earth = To Moon     '
trapSt = trapSt.split(".")
only_LowerCase_Works_Here = trapSt.map(s => s.trim() && s.toLowerCase()); // ??? why only s.toLowerCase() works here???!!!!
only_Trim_Works_Here = trapSt.map(s => s.toLowerCase().trim()); // ??? why only s.trim() works here???!!!!

console.log(only_LowerCase_Works_Here);
console.log(only_Trim_Works_Here);

关于javascript - 在单个数组映射方法中使用字符串trim和toLowerCase方法无法按预期工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58718803/

10-09 01:44
查看更多