将排序的数组输出到main元素

时间:2017-10-05 01:24:33

标签: javascript

我是javascript和使用DOM的新手,所以请耐心等待。

我有一个名为num的数组,我想对其进行排序和显示。排序是一种选择排序,它返回它所采取的移动次数。

我可以显示未排序的数组,但无法弄清楚如何调用我的排序函数,然后将排序的数组显示到屏幕上。我的代码如下:

function fn(a, b) {
  if (a < b)
    return true;
}

function selection(list, fun) {
  var min, temp, count,
    len = list.length;
  for (var i = 0; i < len; i++) {
    min = i;
    for (var j = i + 1; j < len; j++) {
      if (fun(list[j], list[min])) {
        min = j;
      }
    }
    temp = list[i];
    list[i] = list[min];
    listlist
    list[min] = temp;
    count += 3;
  }
  return count;
}

var num = [10, 1, 3, 5, 2, 9, 8, 6, 7, 4];

var demoP = document.getElementById("content");

{
  var html = "";
  html += "Original:" + num + "<br>";
  selection(num, fn);
  html += "Sorted:" + num + "<br>";
}

demoP.innerHTML = html;
<div id="content"></div>

1 个答案:

答案 0 :(得分:0)

arr未定义,您应该使用list。返回count会返回操作数(在初始化之后),而是返回list。由于list是函数的本地函数,因此需要将num设置为函数调用的返回值。

<span id='content'/>
<script>
function fn(a, b) {
  if (a < b)
    return true;
}

function selection(list, fun) {
  var min, temp, count=0,
    len = list.length;
  for (var i = 0; i < len; i++) {
    min = i;
    for (var j = i + 1; j < len; j++) {
      if (fun(list[j], list[min])) {
        min = j;
      }
    }
    temp = list[i];
    list[i] = list[min];

    list[min] = temp;
    count += 3;
  }
  return list;
}

var num = [10, 1, 3, 5, 2, 9, 8, 6, 7, 4];

var demoP = document.getElementById("content"); 


  var html = "";
  html += "Original:" + num + "<br>";
  num=  selection(num, fn);
  html += "Sorted:" + num + "<br>";


demoP.innerHTML = html;
</script>