登录
首页 >  文章 >  前端

如何用JS高效生成指定长度的自定义数组?

时间:2024-12-07 09:57:54 354浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《如何用JS高效生成指定长度的自定义数组?》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

如何用JS高效生成指定长度的自定义数组?

js 数组处理:生成自定义长度数组

您提到的问题是处理一个固定范围长度(4-8)的数组 arr 并根据一个自定义输入的数字 num 生成一个指定长度的数据列表。

解决方案:

横向计算:

function createlistdata(list, num = 600) {
  let count = list.reduce((n, i) => n + i.test, 0);
  let step = num / count | 0; //向下取整
  let data = list.map((item, index) => {
    return array.from({ length: item.test }).map(citem => {
      return {
        min: 0,
        max: 0,
      };
    });
  });

  let max = math.max(...list.map(i => i.test));
  let value = 0,
    idx = 1;
  for (let index = 0; index < max; index++) {
    data.foreach(item => {
      if (item[index]) {
        item[index].index = idx++;
        item[index].min = value + 1;
        value += step;
        item[index].max = num < value + step ? num : value;
      }
    });
  }

  return data;
}

竖向计算:

function createListData(list, num = 600) {
  let count = list.reduce((n, i) => n + i.test, 0);
  let step = num / count | 0; //向下取整
  let value = 0,
    idx = 1;
  let data = list.map((item, index) => {
    return Array.from({ length: item.test }).map(citem => {
      let start = value;
      value += step;
      return {
        index: idx++,
        min: start + 1,
        max: num < value + step ? num : value,
      };
    });
  });

  return data;
}

本篇关于《如何用JS高效生成指定长度的自定义数组?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于文章的相关知识,请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>