我需要数学帮助。说我有从0,4(5项)接收索引的函数,我必须生成具有以下值的数组
与索引0类似,数组将为[0,20],依此类推..
index min-max
================
0 0,20
1 20,40
2 40,60
3 60, 80
4 80, 100
算法怎么样?尝试过多而添加无法成功。
答案 0 :(得分:1)
这可以通过简单的线性步骤与for循环结合来实现。
var stop = 5, step = 20;
for (var i = 0, min = 0, max = step; i < stop; i++, min+=step, max+=step) {
console.log(i, min, max);
}
&#13;
.as-console-wrapper { top: 0; max-height: 100% !important; }
&#13;
如果您不想创建另外两个变量,则可以简单地相乘。
var stop = 5, step = 20;
for (var i = 0; i < stop; i++) {
console.log(i, i * step, (i + 1) * step);
}
&#13;
.as-console-wrapper { top: 0; max-height: 100% !important; }
&#13;
如果您不想要循环,可以试试这个:
function minMaxMap(count, step) {
return Array.from(new Array(count), (_, i) => [i * step, (i + 1) * step]);
}
var items = minMaxMap(5, 20);
items.forEach((item, index) => console.log([index].concat(item).join(', ')));
&#13;
.as-console-wrapper { top: 0; max-height: 100% !important; }
&#13;
答案 1 :(得分:0)
Promise
&#13;
编辑:让 N 为定义所需数组大小的任意数字。
var res = [0, 1, 2, 3, 4].map(function (e) { return [e * 20, e * 20 + 20]; });
console.log(res);
&#13;
答案 2 :(得分:0)
您可以使用const data = [0,1,2,3,4,5]
function minMax(index) {
return [index * 20, (index * 20) + 20]
}
const out = data.map(minMax)
console.log(out)
来实现此目的,返回最小最大数组
{{1}}