Updated flattenObject tests

This commit is contained in:
Angelos Chalaris
2018-02-07 11:36:01 +02:00
parent 12238b8e78
commit d14b19406e
5 changed files with 9 additions and 13 deletions

View File

@ -1,11 +1,7 @@
const flattenObject = (obj, prefix = '') =>
Object.keys(obj).reduce((acc, k) => {
const pre = prefix.length ? (prefix + '.') : '';
if (typeof obj[k] === 'object')
Object.assign(
acc,
flattenObject(obj[k], pre + k)
);
const pre = prefix.length ? prefix + '.' : '';
if (typeof obj[k] === 'object') Object.assign(acc, flattenObject(obj[k], pre + k));
else acc[pre + k] = obj[k];
return acc;
}, {});

View File

@ -6,6 +6,7 @@ test('Testing flattenObject', (t) => {
//Please go to https://github.com/substack/tape
t.true(typeof flattenObject === 'function', 'flattenObject is a Function');
t.deepEqual(flattenObject({ a: { b: { c: 1 } }, d: 1 }), { 'a.b.c': 1, d: 1 }, 'Flattens an object with the paths for keys');
t.deepEqual(flattenObject([0,1,[2,[1]],1]), { 0: 0, 1: 1, 3: 1, '2.0': 2, '2.1.0': 1 }, 'Works with arrays');
//t.deepEqual(flattenObject(args..), 'Expected');
//t.equal(flattenObject(args..), 'Expected');
//t.false(flattenObject(args..), 'Expected');

View File

@ -6,7 +6,7 @@ test('Testing shuffle', (t) => {
//Please go to https://github.com/substack/tape
t.true(typeof shuffle === 'function', 'shuffle is a Function');
const arr = [1,2,3,4,5,6];
t.notDeepEqual(shuffle(arr), arr, 'Shuffles the array');
//t.notDeepEqual(shuffle(arr), arr, 'Shuffles the array'); Does not work always (got a test failing once)
//t.deepEqual(shuffle(args..), 'Expected');
//t.equal(shuffle(args..), 'Expected');
//t.false(shuffle(args..), 'Expected');

View File

@ -1,4 +1,4 @@
Test log for: Wed Feb 07 2018 11:29:34 GMT+0200 (GTB Standard Time)
Test log for: Wed Feb 07 2018 11:34:35 GMT+0200 (GTB Standard Time)
> 30-seconds-of-code@0.0.1 test G:\My Files\git Repositories\30-seconds-of-code
> tape test/**/*.test.js | tap-spec
@ -416,6 +416,7 @@ Test log for: Wed Feb 07 2018 11:29:34 GMT+0200 (GTB Standard Time)
√ flattenObject is a Function
√ Flattens an object with the paths for keys
√ Works with arrays
Testing flip
@ -1740,8 +1741,8 @@ Test log for: Wed Feb 07 2018 11:29:34 GMT+0200 (GTB Standard Time)
√ Works with multiple promises
total: 841
passing: 841
total: 842
passing: 842
duration: 2.4s

View File

@ -6,9 +6,7 @@ Object.assign(
acc,
JSON.parse(
'{' +
keys
.map((v, i) => (i !== keys.length - 1 ? `"${v}":{` : `"${v}":`))
.join('') +
keys.map((v, i) => (i !== keys.length - 1 ? `"${v}":{` : `"${v}":`)).join('') +
obj[k] +
'}'.repeat(keys.length)
)