数学:用js得到索引

时间:2017-10-11 13:37:20

标签: javascript math

我有javascript, angularjs和值数组。 values.length%3 = 0总是

如果values.length == 6 - 我有索引:0, 1, 2, 3, 4, 5

有一个数学解决方案来获得以下内容 -

if 0, 1, 2 - get 0
if 3, 4, 5 - get 1

我也有动力:

0, 1, 2, 3, 4, 5, 6, 7, 8

然后需要得到

if 0, 1, 2 - get 0
if 3, 4, 5 - get 1
if 6, 7, 8 - get 2

3 个答案:

答案 0 :(得分:2)

您可以将值除以并取整数值。



var i;

for (i = 0; i < 9; i++) {
    console.log(i, Math.floor(i / 3));
}
&#13;
&#13;
&#13;

答案 1 :(得分:2)

所以,你想要的是&#34;范围&#34;具体数字在:

 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
[   0   ][   1   ][   2   ][    3    ]...

这很容易做到:

Math.floor(num/3)

这是一个简单的例子:

&#13;
&#13;
function range(n) {
  return Math.floor(n / 3);
}

let x = [0, 1, 2, 3, 4, 12, 13, 17, 634]
for(let i = 0; i < x.length; i++){
    console.log('Value: ' + x[i] + ', range number: ' + range(x[i]));
}
&#13;
&#13;
&#13;

Math.floor将值向下舍入到最接近的整数:0.2 > 00.9 > 01.1 > 1

答案 2 :(得分:0)

基于

  

如果values.length == 6 - 我有索引:0,1,2,3,4,5

  

然后需要得到

     

如果0,1,2 - 得0

     

如果3,4,5 - 得1

     

如果6,7,8 - 得到2

所以你想为你的数组返回一个数组,这个值应该只在一定数量的项目之后用索引递增。

var output = values.map( function( val, index ){ return parseInt( index/3 ) } );