mightyplow 7 лет назад
Родитель
Сommit
407cfc65bd
3 измененных файлов с 22 добавлено и 2 удалено
  1. 11 1
      lib/object.js
  2. 1 1
      package.json
  3. 10 0
      tests/object.js

+ 11 - 1
lib/object.js

@@ -3,7 +3,17 @@
 module.exports = {
     prop: prop => obj => obj[prop],
 
-    defaults: (obj, values) => {
+    filter (obj, pred) {
+        return Object.keys(obj).reduce((filtered, key) => {
+            const value = obj[key];
+
+            if (pred(key, value)) {
+                filtered[key] = value;
+            }
+        }, {});
+    },
+
+    defaults (obj, values) {
         Object.keys(values).forEach(key => {
             if (!obj.hasOwnProperty(key)) {
                 obj[key] = values[key];

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "@mightyplow/jslib",
-  "version": "0.3.0",
+  "version": "0.4.0",
   "description": "js, helpers library",
   "main": "jslib.js",
   "devDependencies": {

+ 10 - 0
tests/object.js

@@ -0,0 +1,10 @@
+'use strict'
+
+module.exports = {
+    filter: test => {
+        const filter = require('../lib/object').filter;
+
+        test.ok(typeof filter === 'function', 'filter should be a function');
+        test.done();
+    }
+};