hx.mergeDefined
// returns {'a': 1, 'b': 3}
hx.merge.defined({'a': 1}, {'a': undefined}, {'b': 3})
// returns {a: {b: 2, c: {d: 4, e: 'value'}}}
hx.merge.defined({a: {b: 2, c: {d: 3}}}, {a: {b: undefined, c: {d: 4, e: 'value'}}})
html
method for selections has been removed to prevent XSS attacks. hx.shallowMergeDefined
// returns {'a': 1, 'b': 3}
hx.shallowMerge.defined({'a': 1}, {'a': undefined}, {'b': 3})
// returns {a: {b: undefined, c: {d: 4, e: "value" }}}
hx.shallowMerge.defined({a: {b: 2, c: {d: 3}}}, {a: {b: undefined, c: {d: 4, e: 'value'}}})
returnArray
is true. hx.clamp(0, 100, 105) // returns 100
hx.clamp(0, 100, -50) // returns 0
hx.clamp(0, 100, 75) // returns 75
hx.parseHTML
hx.cycle([0, 1, 2], 0); // returns 0
hx.cycle([0, 2, 4], 1); // returns 2
hx.cycle([0, 2, 4], 2); // returns 4
hx.cycle([0, 2, 4], 3); // returns 0
hx.cycle([0, 2, 4], 4); // returns 2
hx.cycle([0, 2, 4], 5); // returns 4
hx.cycle([0, 2, 4], 400); // returns 2
(index % array.length)
hx.defined(123) // true
hx.defined([]) // true
hx.defined({}) // true
hx.defined(undefined) // false
hx.defined(null) // false
undefined
or null
. hx.endsWith('some-string', 'ing') // returns true
hx.endsWith('some-string', 'some') // returns false
hx.endsWith('some-string', '') // returns true
// returns {v: 3}
hx.find([{v: 7}, {v: 6}, {v: 3}, {v: 5}], function(d){
return d.v === 3;
});
var items = [
{ type: 'a', value: 1 },
{ type: 'a', value: 2 },
{ type: 'b', value: 3 },
{ type: 'b', value: 4 },
{ type: 'b', value: 5 },
{ type: 'c', value: 6 }
]
/* returns
[
[
"a", [
{ type: 'a', value: 1 },
{ type: 'a', value: 2 }
]
],
[
"b", [
{ type: 'b', value: 3 },
{ type: 'b', value: 4 },
{ type: 'b', value: 5 }
]
],
[
"c", [
{ type: 'c', value: 6 }
]
]
]
*/
hx.groupBy(items, function(v){
return v.type;
})
// returns a number
hx.hash('some-string');
// calling it again with the same input will give the same result
hx.hash('some-string');
// returns an integer in the range [0, 5). So this could return 0, 1, 2, 3 or 4
hx.hash('some-string', 5);
hx.isArray("i am a string") // returns false
hx.isArray({}) // returns false
hx.isArray(document.createElement('div')) // returns false
hx.isArray([]) // returns true
hx.isArray(123) // returns false
hx.isArray(function(){}) // returns false
hx.isBoolean("i am a string") // returns false
hx.isBoolean({}) // returns false
hx.isBoolean(document.createElement('div')) // returns false
hx.isBoolean([]) // returns false
hx.isBoolean(123) // returns false
hx.isBoolean(function(){}) // returns false
hx.isBoolean(true) // returns true
hx.isBoolean(false) // returns true
hx.isFunction("i am a string") // returns false
hx.isFunction({}) // returns false
hx.isFunction(document.createElement('div')) // returns false
hx.isFunction([]) // returns false
hx.isFunction(123) // returns false
hx.isFunction(function(){}) // returns true
hx.isObject("i am a string") // returns false
hx.isObject({}) // returns true
hx.isObject(document.createElement('div')) // returns true
hx.isObject([]) // returns false
hx.isObject(123) // returns false
hx.isObject(function(){}) // returns false
hx.isPlainObject("i am a string") // returns false
hx.isPlainObject({}) // returns true
hx.isPlainObject(document.createElement('div')) // returns false
hx.isPlainObject([]) // returns false
hx.isPlainObject(123) // returns false
hx.isPlainObject(function(){}) // returns false
hx.isString("i am a string") // returns true
hx.isString({}) // returns false
hx.isString(document.createElement('div')) // returns false
hx.isString([]) // returns false
hx.isString(123) // returns false
hx.isString(function(){}) // returns false
// returns {v: 7}
hx.max([{v: 7}, {v: 6}, {v: 3}, {v: 5}], function(d){
return d.v;
})
// returns {'a': 2, 'b': 3}
hx.merge({'a': 1}, {'a': 2}, {'b': 3})
// returns {a: {b: 'hello', c: {d: 4, e: 'value'}}}
hx.merge({a: {b: 2, c: {d: 3}}}, {a: {b: 'hello', c: {d: 4, e: 'value'}}})
// returns {'a': 1, 'b': 3}
hx.mergeDefined({'a': 1}, {'a': undefined}, {'b': 3})
// returns {a: {b: 2, c: {d: 4, e: 'value'}}}
hx.mergeDefined({a: {b: 2, c: {d: 3}}}, {a: {b: undefined, c: {d: 4, e: 'value'}}})
// returns {v: 3}
hx.min([{v: 7}, {v: 6}, {v: 3}, {v: 5}], function(d){
return d.v;
})
hx.randomId() // returns a 16-character hex string
hx.randomId(24) // returns a 24-character hex string
hx.randomId(10, 'abc') // returns a 10-character string using the letters a, b and c
// returns {'a': 2, 'b': 3}
hx.shallowMerge({'a': 1}, {'a': 2}, {'b': 3})
// returns {a: {b: 'hello', c: {d: 4, e: 'value'}}}
hx.shallowMerge({a: {b: 2, c: {d: 3}}}, {a: {b: 'hello', c: {d: 4, e: 'value'}}})
// returns {'a': 1, 'b': 3}
hx.shallowMergeDefined({'a': 1}, {'a': undefined}, {'b': 3})
// returns {a: {b: undefined, c: {d: 4, e: "value" }}}
hx.shallowMergeDefined({a: {b: 2, c: {d: 3}}}, {a: {b: undefined, c: {d: 4, e: 'value'}}})
hx.startsWith('some-string', 'ing') // returns false
hx.startsWith('some-string', 'some') // returns true
hx.startsWith('some-string', '') // returns true
hx.tween(0, 5, 0.5) // returns 2.5
hx.tween(0, 5, 0.1) // returns 0.5
hx.tween(1, 5, 0) // returns 0
hx.tween(1, 5, 1) // returns 5
// returns [[1, 4], [2, 5], [3, 6]]
var result = hx.zip([[1, 2, 3], [4, 5, 6]]);