Skip to content
Open
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
43 changes: 43 additions & 0 deletions challenges/jsQuiz/jsQuiz.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
function objectDestructureAssignment(input) {
const { name, address: { zip } } = input;

return {
name, zip,
};
}

function arrayDestructureAssignment(input) {
const [first, , third] = input;
return {
first, third,
};
}

function arrayMethodsAdmin(input) {
const users = input;

const adminArray = users.filter((person) => person.isAdmin === true);
return adminArray;
}

function arrayMethodsTotalAge(input) {
const users = input;

const reducer = (accumulator, currentValue) => accumulator + currentValue;
const totalAges = users.map((person) => parseInt(person.age, 10)).reduce(reducer, 0);
return totalAges;
}

function dupesArray(input) {
const unique = new Set(input);

return unique;
}

module.exports = {
objectDestructureAssignment,
arrayDestructureAssignment,
arrayMethodsAdmin,
arrayMethodsTotalAge,
dupesArray,
};
75 changes: 75 additions & 0 deletions challenges/jsQuiz/jsQuiz.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
const {
objectDestructureAssignment,
arrayDestructureAssignment,
arrayMethodsAdmin,
arrayMethodsTotalAge,
dupesArray,
} = require('./jsQuiz');

describe('objectDestructureAssignment Test', () => {
test('testOne', () => {
const input = {
name: 'John Doe',
address: {
street1: '123 Smith Street',
zip: '91362',
},
};
const answer = {
name: 'John Doe',
zip: '91362',
};
const result = objectDestructureAssignment(input);
expect(result).toEqual(answer);
});
});

describe('arrayDestructureAssignment Test', () => {
test('testOne', () => {
const input = ['one', 'two', 'three'];
const answer = {
first: 'one',
third: 'three',
};
const result = arrayDestructureAssignment(input);
expect(result).toEqual(answer);
});
});

describe('arrayMethodsAdmin Test', () => {
test('testOne', () => {
const input = [
{ fName: 'Jim', age: 50, isAdmin: true },
{ fName: 'Sarah', age: 20, isAdmin: false },
{ fName: 'Alice', age: 25, isAdmin: true },
];
const answer = [
{ fName: 'Jim', age: 50, isAdmin: true },
{ fName: 'Alice', age: 25, isAdmin: true },
];
const result = arrayMethodsAdmin(input);
expect(result).toEqual(answer);
});
});

describe('arrayMethodsTotalAge Test', () => {
test('testOne', () => {
const input = [
{ fName: 'Jim', age: 50, isAdmin: true },
{ fName: 'Sarah', age: 20, isAdmin: false },
{ fName: 'Alice', age: 25, isAdmin: true },
];
const answer = 95;
const result = arrayMethodsTotalAge(input);
expect(result).toEqual(answer);
});
});

describe('dupesArray Test', () => {
test('testOne', () => {
const input = [0, 1, 2, 1, 0, 3, 2, 1];
const answer = new Set([0, 1, 2, 3]);
const result = dupesArray(input);
expect(result).toEqual(answer);
});
});
51 changes: 51 additions & 0 deletions challenges/jsQuiz/jsQuizNotes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
jsQuiz Notes go here!

function objectDestructureAssignment() {
const user = {
name: "John Doe",
address: {
street1: "123 Smith Street",
zip: "91362"
}
};

const {name, address: {zip}} = user

console.log(name, zip);
}

function arrayDestructureAssignment() {
const array = ["one", "two", "three"];
const [first, second, third] = array
console.log(first, third)
}


function arrayMethods() {
const users = [
{ fName: "Jim", age: 50, isAdmin: true },
{ fName: "Sarah", age: 20, isAdmin: false },
{ fName: "Alice", age: 25, isAdmin: true }
];

const adminArray = users.filter((person)=>{
return person.isAdmin === true;
})

// const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) => accumulator + currentValue;
console.log(adminArray)
const totalAges = users.map(person => parseInt(person.age,10)).reduce(reducer,0)
console.log(totalAges)
}

function dupesArray() {
const array = [0, 1, 2, 1, 0, 3, 2, 1]

console.log(unique)
}

objectDestructureAssignment();
arrayDestructureAssignment();
arrayMethods();
dupesArray();
1 change: 1 addition & 0 deletions challenges/jsQuiz/jsQuizSpec.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
jsQuiz Spec goes here!
11 changes: 5 additions & 6 deletions helpers/generateBoilerPlate.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const fs = require('fs');
// TODO: split up challenges
// TODO: add appDesignSection?
// ////SETUP HERE//////
const solutionName = 'findArrayIntersect';
const solutionName = 'jsQuiz';
// TODO: look into setting up map or enum for this
/* challenge || dataStructure || algorithm || designPattern || concept */
const codeChallengeType = 'challenge';
Expand Down Expand Up @@ -110,14 +110,13 @@ module.exports = ${solutionName};

const algorithmTestJS = `const ${solutionName} = require('./${solutionName}')

const testOne = {
input: '',
output: ''
}

describe('${solutionName} Test', () => {

test('testOne', ()=>{
const testOne = {
input: '',
output: ''
}
let result = ${solutionName}(testOne.input)
expect(result).toEqual(testOne.output);
});
Expand Down