我正在从本地文件中读取一些数字,然后尝试使用 JavaScript 对数字进行排序。读取是在 ActiveXObject 的帮助下完成的,排序是在 javascript 的帮助下完成的。
当我不使用 ActiveX 时,可以进行排序,但在存在 ActiveX 的情况下,排序不起作用。在 ActiveX 存在的情况下使用此类功能是否有任何限制?如果有人可以告诉我代码需要更改的地方,我将不胜感激。
这是代码。
<html>
<script>
var oRequest;
var i;
var numbers=new Array();
var b= new Array();
var j
var k;
var temp;
var temp1;
if(document.all) {
oRequest = new ActiveXObject("Microsoft.XMLHTTP")
}
else {
oRequest = new XMLHttpRequest();
}
oRequest.open("GET", "file:///C:/Test.txt", true);
oRequest.send(null);
numbers= oRequest.responseText.split("\n");
for(i=0;i<10;i++)
{
for(j=0;j<9;j++)
{
if(numbers[j]>numbers[j+1])
{
temp=numbers[j+1];
numbers[j+1]=numbers[j];
numbers[j]=temp;
}
}}
document.write(numbers);
document.write("<br>");
</script>
</html>
最佳答案
数组numbers
不包含数字,它包含字符串。当您比较它们时,它们将作为字符串进行比较,而不是数字。
解析数组中的字符串:
for (var i = 0; i < numbers.length; i++) numbers[i] = parseInt(numbers[i], 10);
关于javascript - 使用 JavaScript 对数字进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9763300/