UNPKG

jiff

Version:

JSON diff and patch based on rfc6902

54 lines (48 loc) 1.1 kB
/** @license MIT License (c) copyright 2010-2014 original author or authors */ /** @author Brian Cavalier */ /** @author John Hann */ exports.cons = cons; exports.tail = tail; exports.map = map; /** * Prepend x to a, without mutating a. Faster than a.unshift(x) * @param {*} x * @param {Array} a array-like * @returns {Array} new Array with x prepended */ function cons(x, a) { var l = a.length; var b = new Array(l+1); b[0] = x; for(var i=0; i<l; ++i) { b[i+1] = a[i]; } return b; } /** * Create a new Array containing all elements in a, except the first. * Faster than a.slice(1) * @param {Array} a array-like * @returns {Array} new Array, the equivalent of a.slice(1) */ function tail(a) { var l = a.length-1; var b = new Array(l); for(var i=0; i<l; ++i) { b[i] = a[i+1]; } return b; } /** * Map any array-like. Faster than Array.prototype.map * @param {function} f * @param {Array} a array-like * @returns {Array} new Array mapped by f */ function map(f, a) { var b = new Array(a.length); for(var i=0; i< a.length; ++i) { b[i] = f(a[i]); } return b; }