我正在承担的任务如下:
该函数应该被称为 removeDuplicates 并且应该返回一个包含“uniques”属性的对象文字,它应该是排序的输入字符串,但没有任何重复项或特殊字符。返回的对象还应该有一个 'duplicates' 属性,它应该表示删除的重复字符的总数。所以: removeDuplicates('th#elex_ash?') 应该返回: {uniques: 'aehlstx', duplicates: 2}
这是我的代码:
function removeDuplicates(str) {
var stg = str.split("");
var nstr = [];
var allowed = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
var count = 0;
for(var i = 0; i<stg.length;i++){
if(nstr.indexOf(stg[i])== -1){
if(allowed.indexOf(stg[i]) > -1){
nstr.push(str[i])
}
else{
count +=1;
}
}
}
return{uniques: nstr.sort().join(""),duplicates: count}
}
但结果返回 {uniques: 'aehlstx', duplicates: 3} 。
您首先检查您之前是否见过该字符,然后检查它是否是允许的字符并计算您看到不允许的字符的次数。你需要检查这个字符是否被允许,然后看看你之前是否见过它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句