首页 > 解决方案 > js 将参数传递给函数,以便我可以对一些数字进行排序

问题描述

为什么当我将代码粘贴到 playcode.io 时,它的工作原理是这样的

function Nums(args) {
  let n = Number(args[0]);

  let p1 = 0;
  let p2 = 0;
  let p3 = 0;
  let p4 = 0;
  let p5 = 0;

  for (let i = 1; i < n; i++) {
    let currentNum = Number(args[i])
    if (currentNum < 200) {
      p1++;
    } else if (currentNum < 400) {
      p2++;
    } else if (currentNum < 600) {
      p3++;
    } else if (currentNum < 800) {
      p4++;
    } else if (currentNum <= 1000) {
      p5++;
    }
  }
  console.log(p1);
  console.log(p2);
  console.log(p3);
  console.log(p4);
  console.log(p5);
}

Nums(["4", "1", "3", "999"]);

我想对一些数字进行排序,但不是从 0 开始的数组,为什么当我输入 4 作为第一个数字时计算它正确?如果我输入 2 它会放置我的 1 和 3 如果第一个变量和最后一个变量为空

标签: javascriptsorting

解决方案


你好朋友,我让它按我想要的方式工作。首先抱歉,我解释得不够清楚。这是更正:

function Histogram(args) {

let n = Number(arguments[0]);

    let v1 = 0.0;
    let v2 = 0.0;
    let v3 = 0.0;
    let v4 = 0.0;
    let v5 = 0.0;

    for (let i = 1; i <= n; i++) {
        let currentNum = Number(arguments[i])

        if (currentNum < 200) {
            v1++;
        }
        else if (currentNum < 400) {
            v2++;
        }
        else if (currentNum < 600) {
            v3++;
        }
        else if (currentNum < 800) {
            v4++;
        }
        else if (currentNum < 1000) {

            v5++;
        }
    }

    
    console.log(v1);
    console.log(v2);
    console.log(v3);
    console.log(v4);
    console.log(v5);

   

}

Histogram('3','1', '2', '999');

现在我想知道为什么当我插入更多代码时它再次中断......

 let p1Percantage = 0;
    let p2Percantage = 0;
    let p3Percantage = 0;
    let p4Percantage = 0;
    let p5Percantage = 0;


    p1Percantage = (v1 / n * 100);
    p1Percantage = (v2 / n * 100);
    p1Percantage = (v3 / n * 100);
    p1Percantage = (v4 / n * 100);
    p1Percantage = (v5 / n * 100);

    console.log(p1Percantage.toFixed(2) + "%");
    console.log(p2Percantage.toFixed(2) + "%");
    console.log(p3Percantage.toFixed(2) + "%");
    console.log(p4Percantage.toFixed(2) + "%");
    console.log(p5Percantage.toFixed(2) + "%");

应该显示最后一个显示为第一个的变量...预期输出

66.67% 0.00% 0.00% 0.00% 33.33%

主要的:

33.33% 0.00% 0.00% 0.00% 00.00%

整个程序应该按它们的值对正确变量中的直方图数组进行排序,并显示每个变量的百分比 p1Percantage = (v1 / n * 100); .


推荐阅读