diff --git a/staff/david-aroca/.gitignore b/staff/david-aroca/.gitignore new file mode 100644 index 000000000..496ee2ca6 --- /dev/null +++ b/staff/david-aroca/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/staff/david-aroca/Carray/Carray.1.js b/staff/david-aroca/Carray/Carray.1.js new file mode 100644 index 000000000..e69de29bb diff --git a/staff/david-aroca/Carray/Carray.js b/staff/david-aroca/Carray/Carray.js new file mode 100644 index 000000000..cbb72e176 --- /dev/null +++ b/staff/david-aroca/Carray/Carray.js @@ -0,0 +1,62 @@ +function Carray() { + var elements = arguments + + for (var i = 0; i < Carrayarray.length; i++) { + var element = element[i]; + + this[i] = element + } + this.length = elements.length +} + +// Carray.prototype.array.forEach(element => {}); + +Carray.prototype.forEach = function (callback) { + for (var i = 0; i < this.length; i++) { + var element = this[i]; + + callback(element) + } +} + +Carray.prototype.find = function (callback) { + for (var i = 0; i < this.length; i++) { + var element = this[i]; + + var matches = callback(element) + + if (matches) + return element + + } +} + +Carray.prototype.map = function (callback) { + var results = new Carray + + for (var i = 0; i < array.length; i++) { + const element = this[i]; + + var mappedElemet = callback(element) + + results[results.length] = mappedElemet + results.length++ + + } + + return results +} + +Carray.prototype.find = Function(callback){ + var results = new Carray() + + for (var i = 0; i < this.length; i++) { + if (callback(this{ i })) { + + } + + } + return results +} + +module.exports = Carray diff --git a/staff/david-aroca/Carray/Carray.test.js b/staff/david-aroca/Carray/Carray.test.js new file mode 100644 index 000000000..9612e664c --- /dev/null +++ b/staff/david-aroca/Carray/Carray.test.js @@ -0,0 +1,113 @@ +var Carray = require('./Carray') + +console.log('TEST Carray') + +console.log('> constructor') + +console.log('CASE construct an instance without element') + +var c = new Carray + +console.log(c) +// Carray (length: 0) + +console.log('CASE constructor an instance with number elements') + +var c = new Carray(10, 20, 30) + +console.log(c) +//Carray { 0:10, 1: 20, 2: 30, length: 3} + +console.log('CASE constructs an instance with string elements') + +var c = new Carray('Ana', 'Adrian', 'Javier', 'Sergio', 'Bernar', 'Maite', 'Sara') + +console.log(c) +// Carray {0: 'Ana', 1: 'Adrian, 'Javier', 'Sergio', 'Bernat', 'Maite', 'Sara', length 7 + +console.log('> forEach') + +console.log('CASE iterates an instance with number elements') + +var c = new Carray(10, 20, 30) + +c.forEach(function (element) { + console.log(element) +}) +// 10 +// 20 +// 30 + +console.log('CASE iterates an instance with string to upper-case') + +var c = new Carray('Ana', 'Adrian', 'Javier', 'Sergio', 'Bernat', 'Maite', 'Sara') + +c.forEach(function (element) { + console.log(element.toUpperCase()) +}) + +// ANA +// ADRIAN +// JAVIER +// SERGIO +// BERNAT +// MAITE +// SARA + +console.log('> find') + +console.log('CASE find person with age 20') + +var people = new Carray( + { name: 'Peter', age: 30 }, + { name: 'Wendy', age: 25 }, + { name: 'James', age: 20 }, + { name: 'Campa', age: 15 } +) + +var person = people.find(function (person) { + return person.age === 20 +}) + +console.log(person) +// { name: 'James', age: 20} + +console.log('> map') + +console.log('CASE maps products from cart to subtotals') + +var cart = new Carray( + { name: 'Socks Adidas', price: 20, quantity: 2 }, + { name: 'Nike Air Max', price: 80, quantity: 1 }, + { name: 'Shorts Puma', price: 30, quantity: 4 }, +) + +var subtotals = cart.map(function () { + return product.price * product.quantity +}) + +console.log(subtotals) +//Carray { 0:40, 1:80, 2:90, 3:200, length: 4} + +console.log('CASE maps names to upper-case') + +var names = new Carray('Ana', 'Adrian', 'Javier', 'Sergio', 'Bernat', 'Maite', 'Sara') + +var namesinUpperCase = names.map(function (name) { + return name.toUpperCase() +}) + +console.log(namesinUpperCase) +// Carray {0: 'ANA', 1: 'ADRIAN', 2: 'JAVIER', 3 'SERGIO', 4: 'BERNAT', 5: 'MAITE', 6: 'SARA', lentgh: 7} + + +console.log('CASE find the names whith (A)') + +var names = new Carray('Ana', 'Adrian', 'Javier', 'Sergio', 'Bernat', 'Maite', 'Sara') + +var nanesWithA = names.find(function(name){ + return name.includes('a') +}) + +console.log(namesinUpperCase) +