|
@@ -1,11 +1,24 @@
|
|
|
'use strict';
|
|
|
|
|
|
+const checkArray = val => {
|
|
|
+ if (!Array.isArray(val)) {
|
|
|
+ throw Error('value must be an array');
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
module.exports = {
|
|
|
toArray: arraylike => [...arraylike],
|
|
|
|
|
|
ensureArray: val => Array.isArray(val) ? val : [val],
|
|
|
|
|
|
+ unique (ar) {
|
|
|
+ checkArray(ar);
|
|
|
+ return ar.filter((val, i, input) => i === input.indexOf(val));
|
|
|
+ },
|
|
|
+
|
|
|
flatten: function flatten (ar) {
|
|
|
+ checkArray(ar);
|
|
|
+
|
|
|
return ar.reduce((acc, item) => {
|
|
|
if (Array.isArray(item)) {
|
|
|
acc.push(...flatten(item));
|