number

Number utility functions. Inspired by the ruby Integer object.

npm install number
2 downloads in the last week
7 downloads in the last month

number

Number utility functions. Inspired by the ruby Integer object.

build status testling badge

install

node

$ npm install --save number

component

$ component install --save jwerle/number

bower

$ bower install number

browser

<script type="text/javascript" src="https://raw.github.com/jwerle/number/master/build/build.js"></script>
<script type="text/javascript">
  var number = require('number');
</script>

usage

var number = require('number');

var i = 0;
(4).times(function (n) { i = n; });
assert(i === 3);

// .downto
(5).downto(1, function (n) { i = n });
assert(i === 1);

// .upto
(5).upto(10, function (n) { i = n });
assert(i === 10);

// .next
assert((5).next === 6);

// .even
assert((1).even === false);
assert((2).even === true);

// .odd
assert((3).odd === true);
assert((4).odd === false);

// .pred
assert((3).pred === 2);
assert((4).pred === 3);

api

.extend(name, isGetter, fn)

You can extend the Number prototype with number.extend()

  • name - A string name of the function being added to the Number prototype
  • isGetter - A Boolean indicating whether the fn handle is a getter function
  • fn - A function handle to add to the Number prototype

example

Setter the isGetter flag to true will define the property as a getter:

number.extend('sqrt', true, function () {
  return Math.sqrt(this);
});

console.log((4).sqrt); // 2

We can create a function that calculates the GCD (Greatest Common Divisor:

number.extend('gcd', function (y) {
  var x = this
  y = y || 0;
  while (y != 0) {
    var z = x % y;
    x = y;
    y = z;
  }

  return Math.abs(x);
});

(3).gcd(-7); // 1

license

MIT

npm loves you