如何在javascript中减去2个字符以获得ascii的差异

How to substract 2 char in javascript to get a difference in ascii

本文关键字:ascii 字符 2个 javascript      更新时间:2023-09-26

alert('g' - 'a')返回非数字。("NAN")。

但我期望得到ascii的差值为alert(103-97) => alert(6)。因此输出6

在C中,int i = 'g' - 'a'将得到i = 6

如何在javascript中实现2个字符的减法?

alert("g".charCodeAt(0) - "a".charCodeAt(0))给出6。

应用:我在国际象棋程序中使用这个。

唯一可行的方法就是你已经建议的方法:

alert('g'.charCodeAt(0) - 'a'.charCodeAt(0));

如您所知,这将在每种情况下从字符串的第0个元素中检索ASCII字符代码,并从第一个元素中减去第二个元素。

不幸的是,这是检索给定字符的ASCII码的唯一方法,尽管使用函数会更简单一些,尽管考虑到charCodeAt()解决方案的简便性/简单性并不是那么简单。

引用:

  • String.charCodeAt() .

JavaScript不把字符当作数字;它们是单字符字符串。因此,减法运算符将计算Number('g') - Number('a')

您应该执行'g'.charCodeAt(0) - 'a'.charCodeAt(0)(没有更好的方法,但您可以将其包装在函数中)

您可以自己编写一个自定义函数。像这样:

function asciiDif(a,b) {
    return a.charCodeAt(0) - b.charCodeAt(0);
}

然后:

alert(asciiDif('g','a'));