diff --git a/snippets/isObject.md b/snippets/isObject.md new file mode 100644 index 000000000..c4cc5ffa8 --- /dev/null +++ b/snippets/isObject.md @@ -0,0 +1,19 @@ +### isObject + +Returns a boolean determining if the passed value is an object or not. + +Uses the `Object` constructor to create an object wrapper for the given value. +If the value is `null` or `undefined`, create and return an empty object. Οtherwise, return an object of a type that corresponds to the given value. + +```js +const isObject = obj => obj === Object(obj); +``` + +```js +isObject([1, 2, 3, 4]); // true +isObject([]); // true +isObject(['Hello!']); // true +isObject({ a:1 }); // true +isObject({}); // true +isObject(true); // false +``` diff --git a/tag_database b/tag_database index bfbd0adbb..9becb5b1a 100644 --- a/tag_database +++ b/tag_database @@ -84,6 +84,7 @@ isFunction:type,function isLowerCase:string,utility isNull:type isNumber:type,math +isObject:type,object isPrime:math isPrimitive:type,function,array,string isPromiseLike:type,function,promise diff --git a/test/decapitalize/decapitalize.js b/test/decapitalize/decapitalize.js new file mode 100644 index 000000000..6e84e5d6e --- /dev/null +++ b/test/decapitalize/decapitalize.js @@ -0,0 +1,2 @@ +module.exports = decapitalize = ([first, ...rest], upperRest = false) => +first.toLowerCase() + (upperRest ? rest.join('').toUpperCase() : rest.join('')); \ No newline at end of file diff --git a/test/decapitalize/decapitalize.test.js b/test/decapitalize/decapitalize.test.js new file mode 100644 index 000000000..5ce0e6f5c --- /dev/null +++ b/test/decapitalize/decapitalize.test.js @@ -0,0 +1,13 @@ +const test = require('tape'); +const decapitalize = require('./decapitalize.js'); + +test('Testing decapitalize', (t) => { + //For more information on all the methods supported by tape + //Please go to https://github.com/substack/tape + t.true(typeof decapitalize === 'function', 'decapitalize is a Function'); + //t.deepEqual(decapitalize(args..), 'Expected'); + //t.equal(decapitalize(args..), 'Expected'); + //t.false(decapitalize(args..), 'Expected'); + //t.throws(decapitalize(args..), 'Expected'); + t.end(); +}); \ No newline at end of file diff --git a/test/flattenDepth/flattenDepth.js b/test/flattenDepth/flattenDepth.js new file mode 100644 index 000000000..9e4606a75 --- /dev/null +++ b/test/flattenDepth/flattenDepth.js @@ -0,0 +1,4 @@ +module.exports = flattenDepth = (arr, depth = 1) => +depth != 1 +? arr.reduce((a, v) => a.concat(Array.isArray(v) ? flattenDepth(v, depth - 1) : v), []) +: arr.reduce((a, v) => a.concat(v), []); \ No newline at end of file diff --git a/test/flattenDepth/flattenDepth.test.js b/test/flattenDepth/flattenDepth.test.js new file mode 100644 index 000000000..113fbce1e --- /dev/null +++ b/test/flattenDepth/flattenDepth.test.js @@ -0,0 +1,13 @@ +const test = require('tape'); +const flattenDepth = require('./flattenDepth.js'); + +test('Testing flattenDepth', (t) => { + //For more information on all the methods supported by tape + //Please go to https://github.com/substack/tape + t.true(typeof flattenDepth === 'function', 'flattenDepth is a Function'); + //t.deepEqual(flattenDepth(args..), 'Expected'); + //t.equal(flattenDepth(args..), 'Expected'); + //t.false(flattenDepth(args..), 'Expected'); + //t.throws(flattenDepth(args..), 'Expected'); + t.end(); +}); \ No newline at end of file diff --git a/test/isObject/isObject.js b/test/isObject/isObject.js new file mode 100644 index 000000000..98dbe499e --- /dev/null +++ b/test/isObject/isObject.js @@ -0,0 +1 @@ +module.exports = isObject = obj => obj === Object(obj); \ No newline at end of file diff --git a/test/isObject/isObject.test.js b/test/isObject/isObject.test.js new file mode 100644 index 000000000..b9a2e77b1 --- /dev/null +++ b/test/isObject/isObject.test.js @@ -0,0 +1,19 @@ +const test = require('tape'); +const isObject = require('./isObject.js'); + +test('Testing isObject', (t) => { + //For more information on all the methods supported by tape + //Please go to https://github.com/substack/tape + t.true(typeof isObject === 'function', 'isObject is a Function'); + + t.true(isObject([1, 2, 3, 4]), 'isObject([1, 2, 3, 4]) is a object'); + t.true(isObject([]), 'isObject([]) is a object'); + t.true(isObject({ a:1 }), 'isObject({ a:1 }) is a object'); + t.false(isObject(true), 'isObject(true) is not a object'); + + //t.deepEqual(isObject(args..), 'Expected'); + //t.equal(isObject(args..), 'Expected'); + //t.false(isObject(args..), 'Expected'); + //t.throws(isObject(args..), 'Expected'); + t.end(); +});