使用a[letter][occurences]
设置数组,但在遍历此数组时遇到困难,检查occurences > 1
并删除那些数组。
function charFreq(s) {
var i, j;
var a = new Array();
for (j = 0; j < s.length; j++) {
for (i = 0; i < a.length; i++) {
if (a[i][0] == s[j]) {
a[i][1]++;
break;
}
}
if (i == a.length) {
a[i] = [s[j], 1];
}
}
return a[i][0];
}
document.write(charFreq("insert string here"));
这是我到目前为止所提出的混乱:
function check(str) {
var c;
for (c=0; c < a.length; c++) {
if(a[c][1] == 1) {
return true;
break;
} else {
return false;
}
}
}
答案 0 :(得分:3)
使用ES6 Set:
// :: unique = Array<any>|string => Array<any>
const unique = xs => [...new Set(xs)]
const dedupe = str => unique(str).join('')
console.log(
unique('foo'), // => ['f', 'o']
dedupe('foo'), // => 'fo'
)
&#13;
答案 1 :(得分:1)
不要这样做。
function noDups( s ) {
var chars = {}, rv = '';
for (var i = 0; i < s.length; ++i) {
if (!(s[i] in chars)) {
chars[s[i]] = 1;
rv += s[i];
}
}
return rv;
}
alert(noDups("Shoe fly pie, and apple pan dowdy")); // Shoe flypi,andw
随着字符串长度变长,代码变慢的速度大约等于字符串长度的 square 。
答案 2 :(得分:0)
要删除字符串中的重复字符,可以使用下一个使用户@Cerbrus的函数
function find_unique_characters( string ){
var unique='';
for(var i=0; i<string.length; i++){
if(string.lastIndexOf(string[i]) == string.indexOf(string[i])){
unique += string[i];
}
}
return unique;
}
console.log(find_unique_characters('baraban'));
如果您只想返回在a中出现一次的字符 string,检查它们的最后一次出现是否与...相同 他们第一次出现。
您的代码至少返回字符串中的所有字符一次, 而不只是返回不超过一次的字符
链接到stackoverflow Remove duplicate characters from string的线程
答案 3 :(得分:0)
这是一个快速的方法:
str = str.split('').filter(function(v,i,self){
return self.indexOf(v) == i;
}).join('');
答案 4 :(得分:0)
function RemoveDuplicateLetters(input) {
var result = '', i = 0, char = '';
while (i < input.length) {
char = input.substring(i, i+1);
result += char;
input = input.replace(char,'');
}
return result;
}
答案 5 :(得分:0)
我看不到 splice 版本,所以这里是一个:
function uniqueChars(s) {
var s = s.split('');
var c, chars = {}, i = 0;
while ((c = s[i])) {
c in chars? s.splice(i, 1) : chars[c] = ++i;
}
return s.join('');
}
答案 6 :(得分:0)
这假设只有字母字符,大写字母不等于小写字母。
function uniqueChars(string){
var i= 0, L= string.length, ustring= '', next;
while(i<L){
next= string.charAt(i++);
if(ustring.indexOf(next)== -1) ustring+= next;
}
return ustring.replace(/[^a-zA-Z]/g, '');
}
var s1= 'The quick red fox jumps over the lazy brown dog.';
uniqueChars(s1)
/ *返回值:(String) Thequickrdfoxjmpsvtlazybwng * /
返回任何唯一字符 -
function uniqueArray(array){
return array.filter(function(itm, i, T){
return T.indexOf(itm)== i;
});
}
var s1= 'The quick red fox jumps over the lazy brown dog.';
uniqueArray(s1.split('')).join('');
/ *返回值:(String) quickrdfoxjmpsvtlazybwng。 * /