Skip to content

added every and some #28

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 25, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions public/dist/js/bundle.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion public/dist/js/bundle.min.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ <h4>TEST ERRORS</h4>
</div>
</div>
<div class="code-and-eval-console">
<textarea id="code" class="code monospace" rows="10" autofocus autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
<textarea id="code" class="code monospace" rows="15" autofocus autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
<div id="eval-console" class="eval-console console monospace">
<h4>CODE OUTPUT</h4>
<div id="eval-output"></div>
Expand Down
163 changes: 161 additions & 2 deletions src/problems/arrays.js
Original file line number Diff line number Diff line change
Expand Up @@ -503,11 +503,170 @@ module.exports = [
}
}
]
},
{
name: 'Array.map()',
time: 10,
prompt: `Return an array of 'numbers' array's square roots.`,
given: `const numbers = [4, 9, 16];\r`,
answer: `const numbers = [4, 9, 16];
const roots = numbers.map(Math.sqrt);
return roots;`,
tests: [
{
name: 'Correct output',
test(output) {
return assert.deepEqual(output, [2, 3, 4]) === undefined;
}
},
{
name: 'Returns an Array',
test(output) {
return assert.isArray(output) === undefined;
}
},
{
name: 'Array has 3 items',
test(output) {
return assert.lengthOf(output, 3) === undefined;
}
},
{
name: `First item is 2`,
test(output) {
return assert.deepEqual(output[0], 2) === undefined;
}
},
{
name: `Last item is 4`,
test(output) {
return assert.deepEqual(output[output.length - 1], 4) === undefined;
}
}
]
},
{
name: 'Array.every()',
time: 10,
prompt: `Return object that returns whether each array contains all even numbers using Array.every().`,
given: `
const evenNumbers = [2, 4, 6, 8];
const someOddNumbers = [2, 5, 6, 8];
function isEven(element) {

}
return {
evenNumbers: evenNumbers.,
someOddNumbers: someOddNumbers.
};`,
answer: `
const evenNumbers = [2, 4, 6, 8];
const someOddNumbers = [2, 5, 6, 8];
function isEven(element) {
return element % 2 === 0
}
return {
evenNumbers: evenNumbers.every(isEven),
someOddNumbers: someOddNumbers.every(isEven)
};`,
tests: [
{
name: 'Correct output',
test(output) {
return assert.deepEqual(output, {
evenNumbers: true,
someOddNumbers: false
}) === undefined;
}
},
{
name: 'Returns an Object',
test(output) {
return assert.isObject(output) === undefined;
}
},
{
name: 'Object has 2 items',
test(output) {
return assert.lengthOf(Object.keys(output), 2) === undefined;
}
},
{
name: `First value is true`,
test(output) {
return assert.isTrue(output.evenNumbers) === undefined;
}
},
{
name: `Second value is false`,
test(output) {
return assert.isFalse(output.someOddNumbers) === undefined;
}
}
]
},
{
name: 'Array.some()',
time: 10,
prompt: `Return object that returns whether each array contains some odd numbers using Array.some().`,
given: `
const evenNumbers = [2, 4, 6, 8];
const someOddNumbers = [2, 4, 7, 8];
function isOdd(element) {

}
return {
evenNumbers: evenNumbers.,
someOddNumbers: someOddNumbers.
};`,
answer: `
const evenNumbers = [1, 3, 5, 7];
const someOddNumbers = [1, 3, 6, 7];
function isOdd(element) {
return element % 2 !== 0;
}
return {
evenNumbers: evenNumbers.some(isOdd),
someOddNumbers: someOddNumbers.some(isOdd)
};`,
tests: [
{
name: 'Correct output',
test(output) {
return assert.deepEqual(output, {
evenNumbers: false,
someOddNumbers: true
}) === undefined;
}
},
{
name: 'Returns an Object',
test(output) {
return assert.isObject(output) === undefined;
}
},
{
name: 'Object has 2 items',
test(output) {
return assert.lengthOf(Object.keys(output), 2) === undefined;
}
},
{
name: `First value is false`,
test(output) {
return assert.isFalse(output.evenNumbers) === undefined;
}
},
{
name: `Second value is true`,
test(output) {
return assert.isTrue(output.someOddNumbers) === undefined;
}
}
]
}
// Next problems to create:
// forEach? fix one above that tried, but can't verify forEach was used
// .map
// every
// some
// reduce
// reduceRight
Expand Down