14

alert('g' - 'a')正在返回不是数字。(“南”)。

ascii但我希望得到as alert(103-97)=>之间的区别alert(6)。因此6被输出。

在 C 中int i = 'g' - 'a',, 将给出i = 6.

如何在javascript中实现2个字符的减法?(很容易,如下所示)

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

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

4

3 回答 3

20

做你想做的唯一可行的方法是你已经建议的方式:

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

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

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

参考:

于 2013-03-31T20:59:28.183 回答
2

JavaScript 不将字符视为数字;它们是单字符串。所以减法运算符将计算Number('g') - Number('a')

你应该这样做'g'.charCodeAt(0) - 'a'.charCodeAt(0)(没有更好的方法,但你可以将它包装在一个函数中)

于 2013-03-31T21:00:21.097 回答
0

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

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

接着:

alert(asciiDif('g','a'));
于 2013-03-31T21:06:02.837 回答