Javascript:确定字符串中的所有字符是否都是唯一的,如果不是,则删除重复的字符 [英] Javascript: Determine if all characters in a string are unique and if not, delete duplicate characters

查看:23
本文介绍了Javascript:确定字符串中的所有字符是否都是唯一的,如果不是,则删除重复的字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用 a[letter][occurences] 设置了一个数组,但在遍历这个数组时挣扎,以检查 occurences >1 并删除那些.

Have an array set up with a[letter][occurences], but struggling with looping through this array, to check for occurences > 1 and removing the ones that are.

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"));

这是我目前想到的烂摊子:

This is the mess I've come up with so far:

function check(str) {
    var c;
    for (c=0; c < a.length; c++) {
        if(a[c][1] == 1) {
            return true;
            break;
        } else {
            return false;
        }
    }
}

推荐答案

不要那样做.

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

随着字符串的长度变长,您的代码会变慢,速度大约等于字符串长度的平方.

As the length of your string gets longer, your code gets slower by a factor roughly equal to the square of the length of the string.

这篇关于Javascript:确定字符串中的所有字符是否都是唯一的,如果不是,则删除重复的字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆