JavaScript中是否存在将字符转换为代码的技巧,而不是.charCodeAt(i)? 我想通过最快的方式将字符串转换为二进制数组(即比charCodeAt更快)。 但我也很想了解慢方法。JavaScript:将字符转换为代码或将字符串转换为二进制数组(非数字数组)的代码
回答
你可以做一个查找表,但我怀疑它会更快。例如:
function(str){
var codes = {},
output = [];
for (var i=0; i<256; i++){
String.codes[fromCharCode(i)] = i;
}
for (var i=0; i<str.length; i++){
output.push(codes[str[i]]);
}
return output;
}
一般来说,尽管如果你可以用本地代码去,去与本机代码。
是的,只是做了一个快速测试,并使用charCodeAt是2 - 3倍快。 – hobberwickey 2013-03-21 11:05:31
hobberwickey,我怀疑这一点。但无论如何,这是charCodeAt的替代方案。 ;) – Pochemuchkin 2013-03-21 11:19:59
我怀疑你会发现一些比这更快的代码来完成你想要的东西:
function getCharArray(str)
{
var chars = [];
for (var i = 0, n = str.length; i != n; ++i) {
chars.push(str.charCodeAt(i));
}
return chars;
}
你必须这样做,这样一来,因为JavaScript没有单个字符分离型;即使单个字符仍然是一个字符串,因此您需要String.charCodeAt()
。
我搜索不charCodeAt解决方案(它清楚地在问题中描述)。 – Pochemuchkin 2013-03-21 11:17:20
@Poch,我说没有这样的事情。 – 2013-03-21 11:24:09
javascript中的字符串是unicode,而不是ascii,这意味着单个字符的代码可能不止一个字节。
"€".charCodeAt(1) = 8364
这适合两个字节。如果您将其转换回二进制文件,则可以将其解释为一个2字节字符或2个1字节字符。没有办法知道。知道unicode char的长度是棘手的。这可能会帮助你明白为什么这个问题很难解决:http://www.joelonsoftware.com/articles/Unicode.html
当然,我不是说你不能将unicode字符串转换为二进制,我说这是你需要解决的任务,而不是只是将单个字符转换为字节。
有时一个字符可以超过两个字节。但我们可以假设一个字符串是一个简单的unicode字符串,具有32位字符(0..65535),应该将其转换为32位无符号整数(以二进制表示形式)。 – Pochemuchkin 2013-03-21 11:24:33
- 1. 将二进制字符串表示转换为字节数组
- 2. 将数组转换为字符串Javascript
- 3. 将javascript字符串转换为数组
- 4. 将uni代码值数组转换为字符串
- 5. 如何将非空字符串数组转换为字符串?
- 6. Cython将二进制字符串快速转换为int数组
- 7. 将字符串转换为二维数组上的字符(java)
- 8. 注意:数组到字符串转换将数组转换为字符串
- 9. 将数字代码转换为从右至左的字符串
- 10. 将DataMap转换为字符串或字符串数组
- 11. 将字符串转换为二维字符数组
- 12. 将JSONArray转换为字符串数组
- 13. 将php字符串转换为数组
- 14. 将array.description字符串转换为数组
- 15. PHP将字符串转换为数组
- 16. MongoDB将字符串转换为数组
- 17. 将PHP字符串转换为数组
- 18. 将字符串转换为json数组
- 19. 将int转换为字符串数组
- 20. 将字符串数组转换为java.util.List
- 21. 将字符串转换为int数组
- 22. 将Java字符串转换为数组
- 23. 将Java字符串转换为数组
- 24. 将字符串转换为数组PHP?
- 25. 将字符串转换为数组(android)
- 26. 将Dictionary.keyscollection转换为字符串数组
- 27. PHP将字符串转换为数组
- 28. 将Python数组转换为字符串
- 29. 将字符串转换为位数组
- 30. Javascript/jQuery:如何将字符串转换为HTML字符代码
1)字符串有很多二进制表示形式。你想要哪一个? 2)什么是JS二进制数组? – 2013-03-21 09:44:17
我的意思是数组数组(数组与字符代码) – Pochemuchkin 2013-03-21 10:29:56