首页 > 解决方案 > 如何将 10 个以上的升序数字添加到升序数字数组中?

问题描述

嘿伙计们,我正在使用一个名为getListOfYears2的数组,它返回 1990-2020 年的数组。我想创建一个名为的新数组getListOfArrays,它返回 1990-2030 年的数组。由于我要再增加 10 年,所以我想到了使用 for 循环。但是它不起作用并导致我的整个页面内存不足,我什至无法使用 console.log 来检查正在发生的事情。如何解决我的代码中的问题?

getListOfYears2(): number[] {
    return Array.from(Array((2020 - 1990) + 1), (_, i) => 2020 - i);
  }

  getListOfYears(): number[] {
    let years = this.getListOfYears2();
    let newYears = years.map(x=>x);
    var i = newYears[newYears.length-1]
    for (i; i<i+10; i++) {
      years.push(i);
   }
    return newYears;
  }

标签: jquery

解决方案


由于您使用了无限循环,您最终会出现内存不足:i<i+10此表达式将始终将 10 添加到 的当前值i,因此它永远不会结束。

function getListOfYears2()
{
    const years = Array.from(Array((2020 - 1990) + 1), (_, i) => 2020 - i);

    years.sort();

    return years;
}

function getListOfYears()
{
    const years = getListOfYears2();
    const nextYear = years[years.length - 1] + 1;

    for (let i = nextYear; i < nextYear + 10; i++) {
        years.push(i);
    }

    return years;
}

console.log(getListOfYears());


推荐阅读