Skip to content

A JavaScript number utility package based on the Ruby Integer class

License

Notifications You must be signed in to change notification settings

mdvorscak/number-plus

Repository files navigation

number-plus

Build Status Coveralls Status License: MIT XO code style

A number utility package based on the Ruby Integer class.

Differences with number

  • Doesn't modify the prototype chain!
  • Modernized version, provides both es6 and umd
  • Not extendible
  • Some variation on the original Ruby names
  • Handle upTo/downTo edge cases instead of looping infinitely

Getting Started

Install it via npm:

npm install number-plus

Usage

import n from 'number-plus'

n(5).times((i) => console.log(i)) // sequentially logs: 1, 2, 3, 4, 5
// Create a range
const tenToSix = n(10).downTo(6);
// Use the range
tenToSix((i) => console.log(i)) // sequentially logs: 10, 9, 8, 7, 6
// Or use it all in one line
n(6).upTo(10)((i) => console.log(i)) // sequentially logs: 6, 7, 8, 9, 10

API

even

Returns true if the number is even

odd

Returns true if the number is odd

next

Returns the next number. Note: this does increment the internal number representation. For example:

const number = n(40);
number.next(); // 41
number.next(); // 42

prev

Returns the previous number. Note: this does decrement the internal number representation. For example:

const number = n(40);
number.prev(); // 39
number.prev(); // 38

abs

Returns the absolute value of the number. A shortcut for Math.abs.

times(fn)

fn

Type: function - passed the current internal number to the function

Runs the given function a number of times equal to the internal representation of the number.

downTo(floor)

floor

Type: number

Returns a range function, when executed will run the difference in the range number of times. Note: Passes the current internal number to the function. Note 2: Will throw if the range is invalid (e.g. n(1).downTo(100))

upTo(ceil)

ceil

Type: number

Returns a range function, when executed will run the difference in the range number of times. Note: Passes the current internal number to the function. Note 2: Will throw if the range is invalid (e.g. n(10).upTo(1))

About

A JavaScript number utility package based on the Ruby Integer class

Resources

License

Stars

Watchers

Forks

Packages

No packages published