From 7a1f6be436f784e34ce7afdced0c1c6cb5cc50fa Mon Sep 17 00:00:00 2001 From: Jakob Anderson Date: Thu, 29 Jun 2017 18:39:31 -0600 Subject: [PATCH 1/2] adding keyed collections --- index.js | 5 ++- problems/keyed-collections.js | 77 +++++++++++++++++++++++++++++++++-- 2 files changed, 77 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index 00dc47e..fe4cb75 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,8 @@ // default const normal = { - initial: require('./problems/initial'), - arrays: require('./problems/arrays') + // initial: require('./problems/initial'), + // arrays: require('./problems/arrays'), + 'keyed-collections': require('./problems/keyed-collections') }; module.exports = normal; diff --git a/problems/keyed-collections.js b/problems/keyed-collections.js index 17f9b46..46ff314 100644 --- a/problems/keyed-collections.js +++ b/problems/keyed-collections.js @@ -1,7 +1,77 @@ +"use strict"; + +module.exports = [ + // Map() -// .length // 0 // .size() -// .clear() +// { +// name: 'Create Map', +// time: 10, +// prompt: `Map isn't like array. It uses 'size' instead of 'length'. Return the length of the 'players' Map.`, +// given: `const players = new Map(); +// players.set('Steve',{}); +// players.set('Geoff',{}); +// return players`, +// answer: `const players = new Map(); +// players.set('Steve',{}); +// players.set('Geoff',{}); +// return players.size`, +// tests: [{ +// name: 'Correct output', +// test: 'assert.equal(output, 2, "Not the expected value") === undefined;' +// }, { +// name: 'Returns a number', +// test: 'assert.isNumber(output, "Should return a type number") === undefined;' +// }] +// }, +// // .clear() +// { +// name: 'Empty the Map', +// time: 10, +// prompt: `Empty the 'players' Map using '.clear()'`, +// given: `const players = new Map(); +// players.set('Steve', true); +// players.set('Geoff', true); + +// return players;`, +// answer: `const players = new Map(); +// players.set('Steve', true); +// players.set('Geoff', true); +// players.clear(); +// return players;`, +// tests: [{ +// name: 'Returns a Map', +// test: 'assert.equal(output instanceof Map, true, "Should return a type Map") === undefined;' +// }, { +// name: 'Map is empty', +// test: 'assert.equal(output.size, 0, "Map should be empty") === undefined;' +// }] +// }, +{ + name: 'Map.delete()', + time: 10, + prompt: `Remove 'Steve' from 'players' using '.delete()'`, + given: `const players = new Map(); + players.set('Steve', 'foo'); + players.set('Geoff', 'foo'}); + + return players;`, + answer: `const players = new Map(); + players.set('Steve', 'foo'); + players.set('Geoff', 'foo'); + players.delete('Steve'); + return players;`, + tests: [{ + name: 'Returns a Map', + test: 'assert.equal(output instanceof Map, true, "Should return a type Map") === undefined;' + }, { + name: 'Map has one player', + test: 'assert.equal(output.size, 1, "Map.size should be 1") === undefined;' + }, { + name: 'Map has player Geoff', + test: `assert.equal(output.has('Geoff'), true, "Map should still have Geoff") === undefined;` + }] +} // .delete() // .entries() // .forEach() @@ -36,4 +106,5 @@ // difference // WeakSet() -"use strict"; \ No newline at end of file + +]; From c3943f3fb05d24b594f50336e4f372cace4f895e Mon Sep 17 00:00:00 2001 From: Jakob Anderson Date: Thu, 29 Jun 2017 18:39:57 -0600 Subject: [PATCH 2/2] converted to es5 --- problems/keyed-collections.js | 77 ++++++++++++++++------------------- 1 file changed, 34 insertions(+), 43 deletions(-) diff --git a/problems/keyed-collections.js b/problems/keyed-collections.js index 46ff314..6bb942e 100644 --- a/problems/keyed-collections.js +++ b/problems/keyed-collections.js @@ -50,17 +50,9 @@ module.exports = [ { name: 'Map.delete()', time: 10, - prompt: `Remove 'Steve' from 'players' using '.delete()'`, - given: `const players = new Map(); - players.set('Steve', 'foo'); - players.set('Geoff', 'foo'}); - - return players;`, - answer: `const players = new Map(); - players.set('Steve', 'foo'); - players.set('Geoff', 'foo'); - players.delete('Steve'); - return players;`, + prompt: 'Remove \'Steve\' from \'players\' using \'.delete()\'', + given: 'const players = new Map();\n players.set(\'Steve\', \'foo\');\n players.set(\'Geoff\', \'foo\'});\n\n return players;', + answer: 'const players = new Map();\n players.set(\'Steve\', \'foo\');\n players.set(\'Geoff\', \'foo\');\n players.delete(\'Steve\');\n return players;', tests: [{ name: 'Returns a Map', test: 'assert.equal(output instanceof Map, true, "Should return a type Map") === undefined;' @@ -69,42 +61,41 @@ module.exports = [ test: 'assert.equal(output.size, 1, "Map.size should be 1") === undefined;' }, { name: 'Map has player Geoff', - test: `assert.equal(output.has('Geoff'), true, "Map should still have Geoff") === undefined;` + test: 'assert.equal(output.has(\'Geoff\'), true, "Map should still have Geoff") === undefined;' }] -} -// .delete() -// .entries() -// .forEach() -// .get() -// .has() -// .keys() -// .set() -// .values() -// iterating with for..of -// convert keys to array? + // .delete() + // .entries() + // .forEach() + // .get() + // .has() + // .keys() + // .set() + // .values() + // iterating with for..of + // convert keys to array? -// WeakMap() + // WeakMap() -// Set() -// .length // 0 -// .size() -// .add() -// .clear() -// .delete() -// .entries() -// .forEach() -// .has() -// .keys() -// .values() -// store a de-duped list of names using Set -// transform an array into a set -// superset -// union -// intersection -// difference + // Set() + // .length // 0 + // .size() + // .add() + // .clear() + // .delete() + // .entries() + // .forEach() + // .has() + // .keys() + // .values() + // store a de-duped list of names using Set + // transform an array into a set + // superset + // union + // intersection + // difference -// WeakSet() + // WeakSet() -]; +}]; \ No newline at end of file