我写了这段代码来删除字符串中的某些字符,我将其转换为字符数组。
function extractChar(str) {
var array = [];
array = str.split('');
for (i=1;i<arguments.length;i++) {
for (x=0;x<array.length;x++) {
if (array[x] === arguments[i]) {
var temp = array.indexOf(array[x]);
array.splice(temp,1);
}
}
}
document.write(array);
}
extractChar('hello my name is frank','f','m','l');
该代码适用于删除在数组中出现一次的字符(在本例中为“f”)。它也适用于删除彼此不相邻的双字符(在这种情况下为“m”)。
然而,它不适用于彼此相邻的双字母(在这种情况下为'l')。为什么是这样?它适用于两个彼此相邻的不同字母(如'f'和'r')。为什么不用双字母?
谢谢
答案 0 :(得分:1)
当你拼接数组时,下一个索引将减1,所以你需要递减你的&#39; x&#39;因此=)
function extractChar(str){ var array = []; array = str.split(&#39;&#39;);
for (i=1;i<arguments.length;i++) {
for (x=0;x<array.length;x++) {
if (array[x] === arguments[i]) {
var temp = array.indexOf(array[x]);
array.splice(temp,1);
x--;
}
}
}
document.write(array);
}
extractChar('hello my name is frank','f','m','l');
答案 1 :(得分:0)
要删除JavaScript中的相邻双字母,请执行此操作
function deleteDuplicates(string) {
return string.replace(/(.)\1{1,}/g, '');
}
deleteDuplicates("hello")
=> "heo"