继续迭代数组的计数

问题描述

在 Javascript 中,我正在运行一个简单的 for 循环,它递增,其中 num 可以是任何给定的输入数字

const sequenceArr = [];

  for (let i = 0; i <= num; i++) {
    const addedSum = i + i;

    sequenceArr.push({ i,addedSum });
  }

您可以想象,当 num 是某个给定的数字(例如 1000)时,将生成最多 1000 的对象数组,并且该对象看起来像这样:[{1,2},{2,4},{3,6} ... {1000,2000} ]。现在假设您要到 2000。for 循环再次运行,从 0 开始重复并计数相同的数字,对相同的数字执行相同的操作,但它似乎不是非常理想。我怎么能基本上继续计数,从 1001 或我在 sequenceArr 中的最后一个数字继续?而不是从 0 开始一直回到我们新的 num,2000?我应该推送到后端并导入 json 文件吗?我该如何实施?

这是一个小型副项目,我数到一个给定的数字,这样我就可以在 addedSum 上运行 i 操作。后来我映射并查看序列并运行一系列检查。我只是注意到 sequenceArr 永远不会改变,因此我不应该继续重新生成相同的数字,如果 num 小于我们的数组长度,则使用现有数字,并且如果我的 sequenceArr 小于 num,则仅生成和推送新数字{1}}。

然后我还需要将继续计数的新数字推送/更新到我的 sequenceArr 以更新序列。

解决方法

您可以使用一个函数并移交数组并通过尊重给定的项目添加对象。

function addValues(array,num) {
    for (let i = array.length ? array[array.length - 1].i + 1 : 0; i <= num; i++) {
        const addedSum = i + i;
        array.push({ i,addedSum });
    }
}
  
const sequenceArr = [];

addValues(sequenceArr,3);
console.log(sequenceArr);

addValues(sequenceArr,5);
console.log(sequenceArr);
.as-console-wrapper { max-height: 100% !important; top: 0; }

,

对您的代码进行少量修改。

let sequenceArr = []; 

function getResult(arr,num) {
  let len = arr.length;
    for ( len ? arr[ len - 1].len + 1 : 0; len <= num; len++) {
        let addedSum = len + len;
        arr.push({ len,addedSum });
    }
}
  

getResult(sequenceArr,3);
console.log(sequenceArr);

getResult(sequenceArr,5);
console.log(sequenceArr);