+###*
+ * zipObject
+ *
+ * Makes an object from first array as keys and second array
+ * as values. In addition if values more than keys will store
+ * the 'addition' key with those overhead values.
+ *
+ * @param {Array} keys First array
+ * @param {Array} values Second array
+ * @return {Object} Object as described above
+###
+
 exports.zipObject = (keys, values) ->
 
   o = {}


exports.contains = (a, b) ->

  a.filter (x) -> b.includes x


###*

 * Drop item from array
 *
 * @param {Array} array array from we dropping
 * @param {String / Number} item Item we want drop
 * @return {Array} New array that no longer contain the item
###

exports.drop = (array, item) ->

  return array.filter (x) -> x isnt item