如何解决从字符串数组中删除标点功能
我目前正在用 JavaScript 做一个项目,该项目涉及从字符串数组(如数组“greetings”)中删除某些标点符号。我使用迭代器遍历数组中的每个项目,然后我编写了一个循环来遍历当前项目中的每个字母。我声明了一个空变量,用于根据字母不是双引号、句点或感叹号来连接每个字母。然后在循环遍历单词中的所有字母后,我将最终连接的字符串返回到映射迭代器中。当我尝试打印 nopunctGreetings 时,我得到空字符串。
const greetings = ['Hi,','my','name','is','Dave!']
const nopunctGreetings = greetings.map(word => {
let concatedWord = '';
for (let i = 0; i < word.length; i++) {
if (word[i] != '"' || word[i] != '.' || word[i] != '!') {
concatedWord.concat(word[i].toLowerCase());
}
}
return concatedWord;
})
console.log(nopunctGreetings)
>>> ['','','']
如果有其他更简洁的方法可以做到这一点,请告诉我。
解决方法
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/concat
concat() 方法将字符串参数连接到调用字符串并返回一个新字符串。
所以你需要做
concatedWord = concatedWord.concat(word[i].toLowerCase());
此外,您还需要:
word[i] != '"' && word[i] != '.' && word[i] != '!'
而不是 ||
,因为 word[i]
将始终不是 "
或不是 .
const greetings = ['Hi,','my','name','is','Dave!']
const noPunctGreetings = greetings.map(word => {
let concatedWord = '';
for (let i = 0; i < word.length; i++) {
if (word[i] != '"' && word[i] != '.' && word[i] != '!') {
concatedWord = concatedWord.concat(word[i].toLowerCase());
}
}
return concatedWord;
})
console.log(noPunctGreetings)
或者,更简单:
const greetings = ['Hi,'Dave!']
const noPunctGreetings = greetings.map(word => word.replace(/[."!]/g,"").toLowerCase())
console.log(noPunctGreetings)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。