基于索引

时间:2017-03-13 10:53:25

标签: javascript algorithm

我需要数学帮助。说我有从0,4(5项)接收索引的函数,我必须生成具有以下值的数组

与索引0类似,数组将为[0,20],依此类推..

index  min-max
================
0        0,20
1        20,40
2        40,60
3        60, 80
4        80, 100

算法怎么样?尝试过多而添加无法成功。

3 个答案:

答案 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;
&#13;
&#13;

如果您不想创建另外两个变量,则可以简单地相乘。

&#13;
&#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;
&#13;
&#13;

如果您不想要循环,可以试试这个:

&#13;
&#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;
&#13;
&#13;

答案 1 :(得分:0)

&#13;
&#13;
Promise
&#13;
&#13;
&#13;

编辑:让 N 为定义所需数组大小的任意数字。

&#13;
&#13;
var res = [0, 1, 2, 3, 4].map(function (e) { return [e * 20, e * 20 + 20]; });
console.log(res);
&#13;
&#13;
&#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}}