
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 { 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高效生成指定长度的自定义数组?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1498365.html
微信扫一扫
支付宝扫一扫