繁体   English   中英

在 function 中插入参数的初始值

[英]Insert initial values of parameters in a function

我创建了一个 function 来使用递归 function 对列表进行排序(选择排序)。 如何在这个 function 中插入——让 i=0 和让 j=i+1——?

let i = 0;
let j = i + 1;
function fSort(array) {
  if (array[j] < array[i]) {
    //  console.log("i=" + i + " j=" + j + " array=" + array);
    [array[i], array[j]] = [array[j], array[i]];
    fSort(array);
  } else if (j < array.length) {
    // console.log("i=" + i + " j=" + j + " array=" + array);
    j++;
    fSort(array);
  } else if (i < array.length) {
    //console.log("i=" + i + " j=" + j + " array=" + array);
    i++;
    j = i + 1;
    fSort(array);
  }
  return array;
}

我认为解决方案是添加一个包装器 function 用主 function 包装变量。

function fSort(array) {
  let i = 0;
  let j = i + 1;
  function fSortInner(array) {
    if (array[j] < array[i]) {
      //  console.log("i=" + i + " j=" + j + " array=" + array);
      [array[i], array[j]] = [array[j], array[i]];
      fSortInner(array);
    } else if (j < array.length) {
      // console.log("i=" + i + " j=" + j + " array=" + array);
      j++;
      fSortInner(array);
    } else if (i < array.length) {
      //console.log("i=" + i + " j=" + j + " array=" + array);
      i++;
      j = i + 1;
      fSortInner(array);
    }
    return array;
  }
  return fSortInner(array);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM