Javascript 向数组中插入字符码的问题
这有点让人发疯。我是javascript新手,很久没有编写代码了。我希望将字符串转换为字符码,并将其转储到数组中。这是当前代码:Javascript 向数组中插入字符码的问题,javascript,arrays,Javascript,Arrays,这有点让人发疯。我是javascript新手,很久没有编写代码了。我希望将字符串转换为字符码,并将其转储到数组中。这是当前代码: function fillArray(str) { var arr=[]; for (var i = 0; i < str.length; i++) { arr.push(str.charCodeAt(str.charAt(i))); } return arr; } 函数填充数组(str){ var-arr=[]; 对于(变量i=0;
function fillArray(str) {
var arr=[];
for (var i = 0; i < str.length; i++) {
arr.push(str.charCodeAt(str.charAt(i)));
}
return arr;
}
函数填充数组(str){
var-arr=[];
对于(变量i=0;i
结果是,如果我发送一个类似“abcd”的字符串,它将返回[97,97,97,97]。即使字符(i)应该遍历,数组似乎只通过查看字符串中的第一个字符来形成。我遗漏了什么?
charCodeAt
获取所需字符的索引,而不是实际字符的索引;因此,只需删除charAt
部分:
arr.push(str.charCodeAt(i));
charCodeAt
获取所需字符的索引,而不是实际字符;因此,只需删除charAt
部分:
arr.push(str.charCodeAt(i));
正如T.J.Crowder所指出的,将索引作为参数。你一直获得97分的原因是(来自): 如果它[参数]不是数字,则默认为0
所以它总是取第一个字母(索引为0),即“a”,其字符代码为97。正如T.J.Crowder所指出的那样,将索引作为参数。你一直获得97分的原因是(来自): 如果它[参数]不是数字,则默认为0
因此,它总是使用第一个字母(索引为0),即“a”,其字符代码为97。您可以将字符串拆分为一个数组(转储),并将每个字符映射为其ascci代码(需要转换)。这样,您可以很快用JS编写它:
var-fillArray=str=>str.split(“”).map(x=>x.charCodeAt(0));
日志(fillArray(“世界日报”)代码>您可以将字符串拆分为一个数组(转储),并将每个字符与其ascci代码映射(需要转换配置)。这样,您可以很快用JS编写它:
var-fillArray=str=>str.split(“”).map(x=>x.charCodeAt(0));
日志(fillArray(“世界日报”)代码>但是为什么他得到97分time@Mahi因为他正在传递.charAt()
的返回值,作为.charCodeAt()
使用的索引。它的计算结果通常为NaN
,而charCodeAt()
认为NaN等同于0
。但为什么他会得到97分呢time@Mahi因为他正在传递.charAt()
的返回值,作为.charCodeAt()
使用的索引。它的计算结果通常为NaN
,而charCodeAt()
接受的值相当于0
。