将数字拆分为100,其余为

时间:2016-02-03 23:35:12

标签: javascript arrays

我确信这已经回答了其他地方,但对于我的生活,我找不到它。我要做的是,对于给定的n,为所述数字创建一个100的因子数组,包括余数。

例如:n = 535

会回来:

array = [100,100,100,100,100,35]

我一直在尝试使用:

var mindnumbing = Array.apply(null,     
Array((N/100))).map(Number.prototype.valueOf,100);

但是无法弄清楚如何携带剩余部分(以及任何非因素100投掷错误,如预期的那样)。

4 个答案:

答案 0 :(得分:2)

// create an array and fill it with 100-s "(N/100) rounded down" times:
var array = Array(Math.floor(N / 100)).fill(100);

// and add the "remainder of N/100", which is written as: N%100:
array.push(N%100);
console.log(array);

答案 1 :(得分:0)

这是我想出的:

function splitHundreds(number) {
  if( number < 100 ) return [number];
  else {
    var array = [];
    while( number >= 100 ) {
      array.push(100);
      number -= 100;
    }
    if( number > 0 ) array.push(number);
    return array;
  }
}

它没有使用modulo(%运算符),但似乎适用于我投入的值。

答案 2 :(得分:0)

看不到需要使用d3,你可以这样做:

printf("Version %04x release %s OS %s OS version %s\n",
    *(int*)buf,
    buf+4,
    buf+4+strlen(buf+4)+1,
    buf+4+strlen(buf+4+strlen(buf+4)+1)+1
    );

答案 3 :(得分:0)

我尝试尽可能少地修改您的代码,但我可能会使用while循环,只是为了更好的可读性。

var mindnumbing = Array.apply(null,     
Array((Math.floor(N/100)))).map(Number.prototype.valueOf,100);
var mod=N%100;
if(mod>0){
    mindnumbing.push(mod);
}
console.log(mindnumbing);