Javascript 按X计数,未完成它';s环

Javascript 按X计数,未完成它';s环,javascript,Javascript,我真的不明白为什么这个循环不能像预期的那样工作,请看下面的例子,有更好的方法吗 function countBy(x, n) { var z = []; for (let i = x; i + x < x * n; i = i + x) { z.push(i); } return z; } 函数计数方式(x,n){ var z=[]; for(设i=x;i+x

我真的不明白为什么这个循环不能像预期的那样工作,请看下面的例子,有更好的方法吗

   function countBy(x, n) {
      var z = [];
      for (let i = x; i + x < x * n; i = i + x) {
        z.push(i);
      }
      return z;
    }
函数计数方式(x,n){
var z=[];
for(设i=x;i+x
预期为:“[1,2,3,4,5]”,得到的是:“[1,2,3]”(x:1,n:5)

预期:'[2,4,6,8,10]',反而得到:'[2,4,6]'(x:2,n:10)

x
为1且
n
为5时,
i
将从1变为4。当
i
为4时,循环将停止,因为1+4不小于1*5

类似地,对于
x
as 2和
n
as 10的情况。循环条件的编写使得它在满足您的需求时过早终止。应该是

for (let i = x; i <= x * n; i = i + x)

for(设i=x;i当
x
为1且
n
为5时,
i
将从1变为4。当
i
为4时,循环将停止,因为1+4不小于1*5

类似地,对于
x
as 2和
n
as 10的情况,循环条件的编写会导致它在满足您的需求时过早终止。它应该是

for (let i = x; i <= x * n; i = i + x)

for(设i=x;i您不期望的结果是正确的

您的代码相当于:

function countBy(x, n) {
      var z = [];
      for (let i = x; i < x * (n-1); i = i + x) {
        z.push(i);
      }
      return z;
    }
function countBy(x, n) {
      var z = [];
      for (let i = x; i <= x * (n-2); i = i + x) {
        z.push(i);
      }
      return z;
    }
但是,要匹配第二个示例,代码需要:

   function countBy(x, n) {
      var z = [];
      for (let i = x; i <= n; i = i + x) {
        z.push(i);
      }
      return z;
    }
函数计数方式(x,n){
var z=[];

对于(让i=x;i来说,您不期望的结果是正确的

您的代码相当于:

function countBy(x, n) {
      var z = [];
      for (let i = x; i < x * (n-1); i = i + x) {
        z.push(i);
      }
      return z;
    }
function countBy(x, n) {
      var z = [];
      for (let i = x; i <= x * (n-2); i = i + x) {
        z.push(i);
      }
      return z;
    }
但是,要匹配第二个示例,代码需要:

   function countBy(x, n) {
      var z = [];
      for (let i = x; i <= n; i = i + x) {
        z.push(i);
      }
      return z;
    }
函数计数方式(x,n){
var z=[];

对于(设i=x;i您希望按x到n进行计数,请尝试以下操作:

函数计数方式(x,n){
var z=[];

对于(设i=x;i您希望按x到n进行计数,请尝试以下操作:

函数计数方式(x,n){
var z=[];

for(设i=x;i@Teemu-Woops,添加在示例后面)@Teemu-Woops,添加在示例后面。