javascript - 比较两个字符串并计算不同的字母

标签 javascript arrays string

我必须编写一个函数,它接受两个字符串并比较它们,然后返回字符串中不同的字母数。例如“ABC”和“DEC”应该返回 4。由于我比较它们的方式,我的函数总是出现一个短的。我看过但似乎找不到解决方法。

我试过在不拆分的情况下循环遍历字符串,结果遇到了同样的问题。

function makeAnagram(a, b) {
    let result = 0;

    let a1 = a.split("").sort();
    let b1 = b.split("").sort();
    for(let i = 0; i < b1.length; i++){
        if(a1.indexOf(b1[i] < 0)){
            result += 1;
        }
    }


    return result;
 }

最佳答案

一行:

("ABC"+"DEC").split('').sort().join('').replace(/(.)\1+/g, "").length

返回

4

程序步骤:

  1. ("ABC"+"DEC") 用 2 个合并的词组成一个字符串:ABCDEC

  2. ("ABC"+"DEC").split('').sort().join('') 使字符串中的字符排序:ABCCDE 。这将使我们能够使用正则表达式轻松找到重复项

  3. replace(/(.)\1+/g, "") 删除所有 2+ 个字符的序列,然后我们得到 ABDE

  4. .length 统计剩余的字符,也就是单次出现的字符。

关于javascript - 比较两个字符串并计算不同的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58726764/

相关文章:

php - 从文本文件中获取随机行

javascript - 如何在Javascript中单击按钮获取随机数组元素

c# - 正则表达式 C#。匹配特定的子字符串并仅返回该子字符串

c# - 将字符串值转换为十六进制十进制

javascript - 如何升级lerna子包的node模块

javascript - animate() 不适用于对象标签

javascript - NodeJS : Reading JSON array from a web request

javascript - 如何通过按类名遍历元素来引用元素的 id

javascript - 根据每个不同元素的位置和宽度定位和居中每个 li 元素

java - 替换数组列表中的字符