Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript switchMaxMin Java脚本_Javascript_Html - Fatal编程技术网

Javascript switchMaxMin Java脚本

Javascript switchMaxMin Java脚本,javascript,html,Javascript,Html,我必须编写一个函数switchMaxMin(tab,n),它在n元素数组tab中交换最大元素和最小元素。我们假设数组中的所有元素都是不同的(即没有几个最大值或最小值)。我不知道怎么做 我开始写代码,我想到了这个: var选项卡=新数组(6,4,65,34,67,89,45,7,35,79,23,56,87,12,38,9); var min=制表符[0]; var max=tab[0]; 文件。书写(“Tablica:”); 对于(i=1;i制表符[i]){ 最小值=制表符[i]; } 如果(

我必须编写一个函数switchMaxMin(tab,n),它在n元素数组tab中交换最大元素和最小元素。我们假设数组中的所有元素都是不同的(即没有几个最大值或最小值)。我不知道怎么做 我开始写代码,我想到了这个:

var选项卡=新数组(6,4,65,34,67,89,45,7,35,79,23,56,87,12,38,9);
var min=制表符[0];
var max=tab[0];
文件。书写(“Tablica:”);
对于(i=1;i制表符[i]){
最小值=制表符[i];
}
如果(最大值<表[i]){
max=tab[i];
}
}
写(“

Max:+Max”);
文件。写入(“
Min:+Min”)要交换元素,还必须存储max和min元素的索引

if (min > tab[i]) {
    min = tab[i];
    minIndex = i;
  }
  if (max < tab[i]) {
    max = tab[i];
    maxIndex = i;
  } 
var选项卡=新数组(6,4,65,34,67,89,45,7,35,79,23,56,87,12,38,9);
var min=制表符[0];
var max=tab[0];
var-minIndex=0;
var-maxIndex=0;
文件。书写(“Tablica:”);
for(设i=1;i制表符[i]){
最小值=制表符[i];
minIndex=i;
}
如果(最大值<表[i]){
max=tab[i];
maxIndex=i;
}
}
交换程序(最大索引、最小索引);
写(“

Max:+Max”); 文件。写入(“
Min:+Min”); document.write(“
在交换之后”+tab.join(“,”); 函数交换程序(maxInd、minInd){ 设temp=tab[maxInd]; tab[maxInd]=tab[minInd] tab[minInd]=温度;
}
这只是另一种方法,效率稍低,但代码行更少

var选项卡=新数组(6,4,65,34,67,89,45,7,35,79,23,56,87,12,38,9);
var min=Math.min.apply(空,制表符);
var MiniIndex=制表指数(最小值);
var max=Math.max.apply(空,制表符);
var maxIndex=tab.indexOf(最大值);
变量温度=选项卡[最小索引]
tab[minIndex]=tab[maxIndex]
tab[maxIndex]=温度;

console.log(选项卡)
用于(i=1;
你应该将
i
初始化为零,否则你总是会错过数组中的第一个元素。数组是零索引的。据我所知,这似乎是正确的。问题是什么?如果你只是想得到关于代码的反馈以及如何改进它,那么你可能应该尝试在@phuzi上发布这个,不。第一个(在索引零处)是最小值和最大值的起始值。循环从索引1开始。啊,对不起。我错过了初始化。文档。写入(制表符[I],“,”)在for循环中,在之后检查它时没有意义。是的,但代码是正确的,我给+1。@Dharmindar我想OP的目的是用它打印原始数组。
function swapper(maxInd, minInd) {
  let temp = tab[maxInd];
  tab[maxInd] = tab[minInd]
  tab[minInd] = temp;
}