我试图从数组中的每个字符串中删除标点符号,但是尝试删除数组中的字符串中的任何类型的字符时都会存在此问题。
我尝试创建 3 个循环: 第一个循环迭代 arrayA 中我要编辑的每个项目。 第二个循环迭代 arrayA 中每个字符串中的每个字符。 第三个循环检查 arrayA 中的字符是否与 arrayB 中的任何字符匹配,如果匹配则将其删除。
但是没有任何内容被删除,我不确定为什么。
这是我到目前为止的代码:
let arrayA = ['abc', 'def', 'ghi'];
let arrayB = ['a', 'e', 'i', 'o', 'u'];
arrayA.forEach((item) => {
for (let i=0; i < item.length; i++) {
for (let arrayBIndex = 0; arrayBIndex < arrayB.length; arrayBIndex++) {
item.replace(arrayB[arrayBIndex], '');
};
};
});
console.log(arrayA);
我已经搜索了与此相关的其他问题,但我无法找到任何答案,特别是要删除的元素包含在另一个列表中的情况。感谢您的帮助。
最佳答案
您可以使用arrayB
生成正则表达式,然后使用array#map
迭代arrayA
中的每个单词并使用string#替换
以删除arrayB
中的单词。
let arrayA = ['abc', 'def', 'ghi'],
arrayB = ['a', 'e', 'i', 'o', 'u'],
regExp = new RegExp(arrayB.join('|'), 'g'),
result = arrayA.map(word => word.replace(regExp, ''));
console.log(result);
关于Javascript:如何删除数组中字符串中的特定字符值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47960173/