JavaScript 函数插入排序/函数未定义

标签 javascript arrays sorting

我正在尝试编写一个 JavaScript 文件,该文件具有插入排序函数、检查排序数组并返回 true 或 false 的函数,以及从数组索引末尾到开头工作的插入排序函数。 这是我的代码

function insertionSort(arr) { 
    for(var i = 1; i < arr.length; i++) { 
        var val = arr[i]; var j; for(j = i; j > 0 && arr[j-1] > val; j--) {
            arr[j] = arr[j-1]; } arr[j] = val; }
    }
function reverseInsertionSort(arr) { 
    for(var i = arr.length; i >1; i--) 
    { var val = arr[i]; var j;
        for(j = i; j > 0 && arr[j-1] > val; j--)
            { arr[j] = arr[j-1]; } arr[j] = val;
            } }
var length = Math.floor(Math.random()*100)+1;
var arr = new Array();
for(let i = 0; i < length; i++) {
  arr.push(Math.floor(Math.random()*10000)+1);
}
console.log(arr);
//function sortCheck(arr) {
//for( var i = 0 ; i < arr.length; i++){
//  if(arr[i]>rr[i+1]){
//      return false
//  }
//}
//return true}


var sortedArr = insertionSort(arr);
console.log(sortedArr);
console.log("And with reverse \n");
var reverseSortedArr = reverseInsertionSort(arr);
console.log(reverseSortedArr);
//console.log(sortCheck(sortedArr));

我现在遇到的问题是,当使用 console.log 输出时,sortedArr 未定义,问题似乎是我的函数“未定义”,但看到我上面如何定义它,我不明白这是怎么回事。

最佳答案

您的 insertSort 函数不返回值,它会修改作为参数传递的数组。只需调用 insertionSort(arr),然后执行 console.log(arr),即可代替 var排序Arr = insertSort(arr)

关于JavaScript 函数插入排序/函数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54565728/

相关文章:

javascript - 如何创建以下数组的克隆而不是引用?

javascript - iOS:禁用弹跳滚动但允许正常滚动

javascript - 修改 Array.forEach 以自动将上下文设置为调用方

php - 理解php中的三元运算符

Javascript偶数和奇数范围

list - 调用降序排序或仅对列表进行排序并反转它更好吗?

ios - 如何对 Xcode 中输入到 TextField 中的整数值进行排序?

java - 根据教师 ID 对学生列表进行排序

javascript - 解析用户查询仅检索当前用户

Javascript 手动触发 .onchange() 事件