Javascript 那里';我的代码中有一个bug

Javascript 那里';我的代码中有一个bug,javascript,arrays,loops,Javascript,Arrays,Loops,我的代码不起作用。我想弄清楚什么是bug。有人能帮忙吗!它是一个函数,应该返回前n个三角形数的数组 例如,ListTriangularNumber(5)返回[1,3,6,10,15] function listTriangularNumbers(n) { var num; var array = []; for (i = 1; i <= n; ++i) { num = i; for (j = i; j >= 1; --j)

我的代码不起作用。我想弄清楚什么是bug。有人能帮忙吗!它是一个函数,应该返回前n个三角形数的数组

例如,ListTriangularNumber(5)返回[1,3,6,10,15]

  function listTriangularNumbers(n) {
    var num;
    var array = [];
    for (i = 1; i <= n; ++i) {
        num = i;
        for (j = i; j >= 1; --j) {
            num = num + j;
        }
        array.push(num);
    }
    return array;
}
函数列表三角形编号(n){
var-num;
var数组=[];
对于(i=1;i=1;--j){
num=num+j;
}
array.push(num);
}
返回数组;
}

您对
j
的初始初始化是错误的,它从
i
开始,所以它太高了。还调换了操作员,以确保条件正常

function listTriangularNumbers(n) {
    var num;
    var array = [];
    for (i = 1; i <= n; i++) {
        num = i;
        for (j = i-1; j >= 1; j--) {
            num = num + j;
        }
        array.push(num);
    }
    return array;
}
函数列表三角形编号(n){
var-num;
var数组=[];
对于(i=1;i=1;j--){
num=num+j;
}
array.push(num);
}
返回数组;
}

您可以尝试以下代码获取帮助:

a=ListTriangularNumber(8);
控制台日志(a);
函数列表三角形编号(n){
var-num;
var数组=[0];

对于(i=1;i您实际上不需要2个for循环来执行此操作。一个for循环就足够了

function listTriangularNumbers(n) {

  // Initialize result array with first element already inserted
  var result = [1];

  // Starting the loop from i=2, we sum the value of i 
  // with the last inserted element in the array.
  // Then we push the result in the array
  for (i = 2; i <= n; i++) {
    result.push(result[result.length - 1] + i);
  }

  // Return the result
  return result;
}

console.log(listTriangularNumbers(5));
函数列表三角形编号(n){
//使用已插入的第一个元素初始化结果数组
var结果=[1];
//从i=2开始循环,我们对i的值求和
//使用数组中最后插入的元素。
//然后我们将结果推送到数组中
对于(i=2;i
函数列表三角形编号(n){
var-num;
var数组=[];
对于(i=1;i=1;--j){
num=num+j;
}
array.push(num);
}
返回数组;
}
var print=ListTriangularNumber(5);

console.log(print);
你说它不工作是什么意思?它在做什么?它没有做什么是你想要的?