我已编写此代码但它不起作用。它显示未排序的数组以及按钮,但是当我点击按钮时没有任何反应。 我是javascript的新手。到目前为止我所知道的是我们可以通过javascript使用onclick方法调用函数。我们可以用c或c ++编写函数。这就是我认为我在这里所做的,但它并没有显示已排序的数组。
var myarray = [4, 6, 2, 1, 9, ];
document.getElementById("demo").innerHTML = myarray;
function sort(myarray) {
var count = array.length - 1,
swap,
j,
i;
for (j = 0; j < count; j++) {
for (i = 0; i < count; i++) {
if (array[i] > myarray[i + 1]) {
swap = myarray[i + 1];
myarray[i + 1] = myarray[i];
myarray[i] = swap;
}
}
document.write(myarray);
}
}
&#13;
<p>Click the button to sort the array.</p>
<button onclick="sort()">Try it</button>
<p id="demo"></p>
&#13;
答案 0 :(得分:3)
主要问题是,决定是否应该设置参数。如果没有,则使用myarray
进行所有操作。如果您决定使用参数,则只使用参数变量。
var myarray = [4, 6, 2, 1, 9, ];
document.getElementById("demo").innerHTML = myarray;
function sort() { // no need for a parameter
var count = myarray.length - 1, // change it to myarray
swap,
j, i;
for (j = 0; j < count; j++) {
for (i = 0; i < count; i++) {
if (myarray[i] > myarray[i + 1]) { // access only myarray
swap = myarray[i + 1];
myarray[i + 1] = myarray[i];
myarray[i] = swap;
}
}
}
document.getElementById("demo").innerHTML = myarray; // return the sorted array
}
&#13;
<p>Click the button to sort the array.</p>
<button onclick="sort()">Try it</button>
<p id="demo"></p>
&#13;
答案 1 :(得分:2)
var myarray = [4, 6, 2, 1, 9];
document.getElementById("demo").innerHTML = myarray;
function sort(myarray) {
var count = myarray.length - 1,
swap,
j,
i;
for (j = 0; j < count; j++) {
for (i = 0; i < count; i++) {
if (myarray[i] > myarray[i + 1]) {
swap = myarray[i + 1];
myarray[i + 1] = myarray[i];
myarray[i] = swap;
}
}
}
document.getElementById("result").innerHTML = myarray;
}
<p>Click the button to sort the array.</p>
<button onclick="sort(myarray)">Try it</button>
<p id="demo"></p>
<p id="result"></p>
答案 2 :(得分:1)
我发现代码存在2个问题。第一个是您在2行中写了array
而不是myarray
:
var count = array.length - 1,
和
if (array[i] > myarray[i + 1]) {
第二个问题是在调用函数时没有将数组作为参数传递,所以:
<button onclick="sort()">Try it</button>
应该是:
<button onclick="sort(myarray)">Try it</button>
答案 3 :(得分:1)
首先,数组定义在末尾有一个额外的,
。
接下来,您在if语句中使用了array
而不是myarray
。
排序后,您需要声明:
document.getElementById("demo").innerHTML = myarray;
答案 4 :(得分:1)
您正在使用未定义或未知的变量'array'。此外,在buttonclick上,您没有将任何参数传递给sort函数。这就是你收到错误的原因。
var myarray = [4, 6, 2, 1, 9, ];
function sort(myarray) {
var count = myarray.length - 1,
swap,
j,
i;
for (j = 0; j < count; j++) {
for (i = 0; i < count; i++) {
if (myarray[i] > myarray[i + 1]) {
swap = myarray[i + 1];
myarray[i + 1] = myarray[i];
myarray[i] = swap;
}
}
document.write(myarray);
}
}
<p>Click the button to sort the array.</p>
<button onclick="sort(myarray)">Try it</button>
<p id="demo"></p>