npm

Need private packages and team management tools?Check out npm Orgs. »

polish

0.2.3 • Public • Published

Polish.js A JavaScript Utility Library

(the verb, not the language)

Install (note, Polish.js overrides default behavior)

node.js

npm install polish
require('polish')

browser

<!-- browser (1.45 KB minified & gzipped) -->
<script src="polish.min.js"></script>

Features

Array operations

list = [1,2,3,4,5]
list.pop(1) == 2 //    list == [1,3,4,5]    pops element at index
list.remove(2) //    list == [1,3,4,5]      removes element by value
list.insert(2,5) //    list == [1,2,5,3,4,5]

Use Math min/max with lists

Math.min([1,2,3]) == 1
Math.max([1,2,3]) == 3

Randomness functions

Math.randInt(100) // random int from 0,100 inclusive
[1,2,3].choice() //random object from list
"abc".choice() //random letter from string
[1,2,3].shuffle() //shuffles array in place
"abc".shuffle() //returns new shuffled string

Global functions

range(1,4) == [1,2,3]
range(6,1,-2) == [6,4,2]
zip([[1,2],[3,4],[5,6]]) == [[1,3,5],[2,4,6]]

Python-inspired list/string selectors

list = [1,2,3,4,5]
str = "abcdef"
 
list.g('-1') == 5
str.g('1:') == "bcdef"
list.g(':2') == [1,2]
str.g('1:3') == "bc"
str.g('-3:-1') == "de"
list.g('::-1') == [5,4,3,2,1]
str.g('3:1:-1') == "dc"
 
//special -1 selector (picks item from end of list)
list[-1] == 5

Itertools

Polish.combinations([1,2,3],2) == [[1,2],[1,3],[2,3]]
Polish.combinationsReplace("abc",2) == [['a','a'],['a','b'], ... , ['c','c']]
Polish.permutations([1,2]) == [[1,2],[2,1]]

Math functions

Math.sum([1,2,3]) == 6
Math.factorial(10) == 3628800
Math.isPrime(23) == true
Math.leastFactor(25) == 5

Strings

"abc".reverse() == "cba"
 
Polish.strings
{
    letters: 'abcdefghijklmnopqrstuvwxyz',
    letters_all: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
    digits: '0123456789'
}

Extra

//stringifies and then parses
Polish.clone

Compatibility / side-effects:

This library has been injected into unit tests for jQuery, backbone, and bootstrap and has not caused any issues.

Summary of globals

Array.prototype.remove()
Array.prototype.insert()
Math.randInt()
String.prototype.choice()
String.prototype.shuffle()
Array.prototype.choice()
Array.prototype.shuffle()
range()
zip()
Array.prototype.g()
String.prototype.g()
Polish.combinations()
Polish.combinationsReplace()

License: BSD

Keywords

none

install

npm i polish

Downloadsweekly downloads

197

version

0.2.3

license

none

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability