diff --git a/.gitignore b/.gitignore index 5171c54..8d8bfd5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ node_modules -npm-debug.log \ No newline at end of file +npm-debug.log +*.swp +*.swo diff --git a/lib/index.js b/lib/index.js index bab4000..ac9f925 100644 --- a/lib/index.js +++ b/lib/index.js @@ -327,13 +327,23 @@ utile.randomString = function (length) { // the predicate `pred` // utile.filter = function (obj, pred) { - var copy = Array.isArray(obj) ? [] : {}; - utile.each(obj, function (val, key) { - if (pred(val, key, obj)) { - copy[key] = val; - } - }); - + var copy; + if (Array.isArray(obj)) { + copy = []; + utile.each(obj, function (val, key) { + if (pred(val, key, obj)) { + copy.push(val); + } + }); + } + else { + copy = {}; + utile.each(obj, function (val, key) { + if (pred(val, key, obj)) { + copy[key] = val; + } + }); + } return copy; };