我有一个要对其执行处理的字符串:
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);
最佳答案
因为toLowerCase
和trim
不会在原位置修改字符串,所以它们在修改后返回字符串。&&
与以下内容不同:
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/