我有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
答案 0 :(得分:2)
您可以将值除以并取整数值。
var i;
for (i = 0; i < 9; i++) {
console.log(i, Math.floor(i / 3));
}
&#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)
这是一个简单的例子:
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;
Math.floor
将值向下舍入到最接近的整数:0.2 > 0
,0.9 > 0
,1.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 ) } );