从字符串javascript算法中删除字符

removing characters from a string - javascript algorithm

本文关键字:删除 字符 算法 字符串 javascript      更新时间:2023-09-26

我正在练习算法问题,并试图在o(n)时间内从字符串中删除给定的字母。

我下面的尝试在几个方面是错误的:

  • outputString数组中的最后一个索引是"未定义的",我不知道为什么
  • 我的输出是正确的字母,但返回的是原始字符串的长度

我该如何修复这些错误?为什么会出现这些错误?

function removeChars(lettersToDelete, string) {
    var flags = {}; // a hash of letters to delete.
    var outputString = string.split("");
    var lettersToDelete = lettersToDelete.split("");
    var i, j;
    for (i = 0; i < lettersToDelete.length; i++) {
        flags[lettersToDelete[i]] = true;
    }
    console.log(flags);
    for (var j = 0; j < string.length; j++) {
        if (flags[string[j]]) {
            outputString[j++] = string[j];
        }
    }
    console.log(outputString); //[ 'a', 'a', 'a', 'a', undefined ]
    return outputString.join(""); // 'aaaa'
}

function removeChars(lettersToDelete, string) {
        var flags = {}; // a hash of letters to delete.
        var outputString =  []; //string.split("");
        var lettersToDelete = lettersToDelete.split("");
        var i, j;
        for (i = 0; i < lettersToDelete.length; i++) {
            flags[lettersToDelete[i]] = true;
        }
        for (var j = 0; j < string.length; j++) {
            if (!flags[string[j]]) {
                outputString.push( string[j] );
            }
        }
        console.log(outputString);
        return outputString.join(""); // 'aaaa'
    }
    removeChars("itu", "mitul");