【问题标题】:Continuing the count of an array of iterations继续计算迭代数组
【发布时间】:2021-05-15 13:03:14
【问题描述】:

在 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 文件吗?我该如何实现呢?

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

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

【问题讨论】:

    标签: javascript arrays for-loop count iterator


    【解决方案1】:

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

    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; }

    【讨论】:

      【解决方案2】:

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

      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);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-02
        • 2016-01-28
        • 1970-01-01
        • 1970-01-01
        • 2020-08-09
        • 1970-01-01
        相关资源
        最近更新 更多