Skip to content

Commit

Permalink
Agrega soluciones a ejercicios y tests
Browse files Browse the repository at this point in the history
  • Loading branch information
WanCirone authored and atralice committed Jan 5, 2021
1 parent d0f23ea commit 79e34c1
Show file tree
Hide file tree
Showing 2 changed files with 134 additions and 87 deletions.
122 changes: 75 additions & 47 deletions 10-JS-Extra-Homeworks/homework/homework.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,14 @@
// No cambies los nombres de las funciones.

function palindromo(frase) {
//Definir una función que determine si la cadena de texto que se le pasa como parámetro es un palíndromo,
//es decir, si se lee de la misma forma desde la izquierda y desde la derecha.
//Ejemplo de palíndromo complejo: "La ruta nos aporto otro paso natural" ---> Devuelve true
//Tu código:
}

// Escribe una función que convierta un objeto en una matriz, donde cada elemento representa
//un par clave-valor en forma de matriz.
//Ejemplo:
/*objecto({
D: 1,
B: 2,
C: 3
}) ➞ [["D", 1], ["B", 2], ["C", 3]]*/


function deObjetoAmatriz(objeto){
// Escribe una función que convierta un objeto en una matriz, donde cada elemento representa
// un par clave-valor en forma de matriz.
//Ejemplo:
/*objeto({
D: 1,
B: 2,
C: 3
}) ➞ [["D", 1], ["B", 2], ["C", 3]]*/
//Escribe tu código aquí
const arreglo =[]
for( x in objeto){
Expand All @@ -26,32 +17,56 @@ function deObjetoAmatriz(objeto){
return arreglo
}

function numberOfCharacters(string) {
//La función recibe un string. Recorre el srting y devuelve el caracter con el número de veces que aparece
//en formato par clave-valor.
//Ej: Recibe ---> "adsjfdsfsfjsdjfhacabcsbajda" || Devuelve ---> { a: 5, b: 2, c: 2, d: 4, f: 4, h:1, j: 4, s: 5 }
//Escribe tu código aquí
var obj = {}

//Realiza una función que reciba como parámetro un string y mueva todas las letras mayúsculas
// al principio de la palabra.
//Ejemplo: soyHENRY -> HENRYsoy
for (let i = 0; i < string.length; i++) {
if (Object.keys(obj).includes(string[i])) {
obj[string[i]] = obj[string[i]] + 1
continue;
}
obj[string[i]] = 1
}
return obj;
}

function capToFront(s) {
//Escribe tu código aquí
let cadena="";
let cadena2="";
for( let i=0; i< s.length; i++){
//Realiza una función que reciba como parámetro un string y mueva todas las letras mayúsculas
// al principio de la palabra.
//Ejemplo: soyHENRY -> HENRYsoy
//Escribe tu código aquí
let cadena="";
let cadena2="";
for( let i=0; i< s.length; i++){
if(s[i] === s[i].toUpperCase()){
cadena+=s[i];
}else{
cadena2+=s[i]
}
}
return cadena.concat('', cadena2);
}
return cadena.concat('', cadena2);
}


//Escribe una función, la cual recibe un número y determina si es o no capicúa.
//La misma debe retornar: "Es capicua" si el número se número que se lee igual de
//izquierda a derecha que de derecha a izquierda. Caso contrario retorna "No es capicua"

function asAmirror(str) {
//La función recibe una frase.
//Escribe una función que tome la frase recibida y la devuelva de modo tal que se pueda leer de izquierda a derecha
//pero con cada una de sus palabras invertidas, como si fuera un espejo.
//Ej: Recibe ---> "The Henry Challenge is close!" || Devuelve ---> "ehT yrneH egnellahC si !esolc"
//Escribe tu código aquí
var phrase = str.split(' ').map(function (item) {
return item.split('').reverse().join('');
}).join(' ');
return phrase;
}

function capicua(numero){
//Escribe una función, la cual recibe un número y determina si es o no capicúa.
//La misma debe retornar: "Es capicua" si el número se número que se lee igual de
//izquierda a derecha que de derecha a izquierda. Caso contrario retorna "No es capicua"
//Escribe tu código aquí
let cadena= numero.toString();
let cadenaInvertida = "";
Expand All @@ -64,11 +79,9 @@ function capicua(numero){

}

//Define una función que elimine las letras "a", "b" y "c" de la cadena dada
//y devuelva la versión modificada o la misma cadena, en caso de contener dichas letras.


function deleteAbc(cadena){
//Define una función que elimine las letras "a", "b" y "c" de la cadena dada
//y devuelva la versión modificada o la misma cadena, en caso de contener dichas letras.
//Escribe tu código aquí
let cadena2="";
for(let i=0; i< cadena.length ; i++){
Expand All @@ -79,14 +92,27 @@ function deleteAbc(cadena){
return cadena2;
}


//Existen dos arrays, cada uno con 5 números. A partir de ello, escribir una función que permita
//retornar un nuevo array con la intersección de ambos elementos. (Ej: [4,2,3] unión [1,3,4] = [3,4].
//Si no tienen elementos en común, retornar un arreglo vacío.
//Aclaración: los arreglos no necesariamente tienen la misma longitud

function sortArray(arr) {
//La función recibe una matriz de strings. Ordena la matriz en orden creciente de longitudes de cadena
//Ej: Recibe ---> ["You", "are", "beautiful", "looking"] || Devuelve ---> [“You", "are", "looking", "beautiful"]
//Escribe tu código aquí
for (let i = 0; i < arr.length; i ++ ){
var temp = arr[i]
var j = i - 1
while (j >= 0 && temp.length < arr[j].length) {
arr[j+1] = arr[j]
j--
}
arr[j+1] = temp
}
return arr;
}

function buscoInterseccion(arreglo1, arreglo2){

This comment has been minimized.

Copy link
@HolgadoJairoDavid

HolgadoJairoDavid Dec 15, 2022

Hola!!! Otra manera de resolver:
function buscoInterseccion(arreglo1, arreglo2){
let uniónArr = [];
for(let i = 0; i < arreglo1.length; i++){
if(arreglo2.includes(arreglo1[i])) uniónArr.push(arreglo1[i]);
}
return uniónArr;
}

//Existen dos arrays, cada uno con 5 números. A partir de ello, escribir una función que permita
//retornar un nuevo array con la intersección de ambos elementos. (Ej: [4,2,3] unión [1,3,4] = [3,4].
//Si no tienen elementos en común, retornar un arreglo vacío.
//Aclaración: los arreglos no necesariamente tienen la misma longitud
//Escribe tu código aquí
let arreglo =[]
for(let i=0; i< arreglo1.length; i++){
Expand All @@ -104,10 +130,12 @@ function buscoInterseccion(arreglo1, arreglo2){
// --------------------------------

module.exports = {
deObjetoAmatriz,
capToFront,
capicua,
deleteAbc,
buscoInterseccion,
palindromo,
deObjetoAmatriz,
numberOfCharacters,
capToFront,
asAmirror,
capicua,
deleteAbc,
sortArray,
buscoInterseccion,
};
99 changes: 59 additions & 40 deletions 10-JS-Extra-Homeworks/homework/tests/JSX.test.js
Original file line number Diff line number Diff line change
@@ -1,56 +1,75 @@
/* eslint-disable no-undef */
const {
deObjetoAmatriz,
capToFront,
capicua,
deleteAbc,
buscoInterseccion,
palindromo
deObjetoAmatriz,
numberOfCharacters,
capToFront,
asAmirror,
capicua,
deleteAbc,
sortArray,
buscoInterseccion,
} = require('../homework');


describe('deObjetoAmatriz(objeto)', function() {
it('should return an array, where each element represents a key-value pair in the form of an array.', function() {
expect(deObjetoAmatriz({ x: 1, y: 2 })).toEqual([["x" , 1],["y" , 2]]);
expect(deObjetoAmatriz({ x: 10, y: 25 })).toEqual([["x" , 10],["y" , 25]]);
});
});
it('should return an array, where each element represents a key-value pair in the form of an array.', function() {
expect(deObjetoAmatriz({ x: 1, y: 2 })).toEqual([["x" , 1],["y" , 2]]);
expect(deObjetoAmatriz({ x: 10, y: 25 })).toEqual([["x" , 10],["y" , 25]]);
});
});

describe('numberOfCharacters(string)', function() {
it('should return an object with the characters and the number of times they appear as a key-value pair', function() {
expect(numberOfCharacters("sktpwrroqstkrpwwsqtqopwktsd")).toEqual({s:4, k:3, t:4, p:3, w:4, r:3, o:2, q:3, d:1 });
expect(numberOfCharacters("adsjfdsfsfjsdjfhacabcsbajda")).toEqual({ a: 5, b: 2, c: 2, d: 4, f: 4, h:1, j: 4, s: 5 });
});
});

describe('capToFront(s)', function() {
it('should return all capital letters at the beginning of the word.', function() {
expect(capToFront("soyHENRY")).toEqual("HENRYsoy");
expect(capToFront("DESArrollaDOR")).toEqual("DESADORrrolla");
});
});
it('should return all capital letters at the beginning of the word.', function() {
expect(capToFront("soyHENRY")).toEqual("HENRYsoy");
expect(capToFront("DESArrollaDOR")).toEqual("DESADORrrolla");
});
});

describe('asAmirror(str)', function() {
it('should return the string recieved with all the words reversed as a mirror', function() {
expect(asAmirror("I love you so much!")).toBe("I evol uoy os !hcum");
expect(asAmirror("The Henry Challenge is close!")).toBe("ehT yrneH egnellahC si !esolc");
});
});

describe('capicua(numero)', function() {
it('should return Es capicua if the number is read from right to left', function() {
expect(capicua(12321)).toEqual("Es capicua");
expect(capicua(1111)).toEqual("Es capicua");
expect(capicua(105217)).toEqual("No es capicua");
expect(capicua(7878700)).toEqual("No es capicua");
it('should return Es capicua if the number is read from right to left', function() {
expect(capicua(12321)).toEqual("Es capicua");
expect(capicua(1111)).toEqual("Es capicua");
expect(capicua(105217)).toEqual("No es capicua");
expect(capicua(7878700)).toEqual("No es capicua");

});
});
});
});

describe('deleteAbc(cadena)', function() {
it('should return the modified string if it has the letters abc or the same string otherwise', function() {
expect(deleteAbc("abcefgh")).toEqual("efgh");
expect(deleteAbc("abc")).toEqual("");
expect(deleteAbc("plural")).toEqual("plurl");
expect(deleteAbc("limon")).toEqual("limon");

});
});
it('should return the modified string if it has the letters abc or the same string otherwise', function() {
expect(deleteAbc("abcefgh")).toEqual("efgh");
expect(deleteAbc("abc")).toEqual("");
expect(deleteAbc("plural")).toEqual("plurl");
expect(deleteAbc("limon")).toEqual("limon");

describe('buscoInterseccion(arreglo1, arreglo2)', function() {
it('should return the common elements of the array, and in case they do not match, return an empty array', function() {
expect(buscoInterseccion([1, 2 , 3], [1, 5, 8 , 3])).toEqual([1, 3]);
expect(buscoInterseccion([7 , 23, 4], [23, 70])).toEqual([23]);
expect(buscoInterseccion([1, 20 , 3], [22, 5, 7])).toEqual([]);
});
});
});
});

describe('sortArray(array)', function() {
it('should return a new array in increasing order', function() {
expect(sortArray(["You", "are", "beautiful", "looking"])).toEqual(["You", "are", "looking", "beautiful"]);
expect(sortArray(["pera", "manzana", "alcaucil", "papa"])).toEqual(["pera", "papa", "manzana", "alcaucil"]);
});
});

describe('palindromo(frase)', function() {
it('should return true if the phrase recieved is a palindrome', function() {});
describe('buscoInterseccion(arreglo1, arreglo2)', function() {
it('should return the common elements of the array, and in case they do not match, return an empty array', function() {
expect(buscoInterseccion([1, 2 , 3], [1, 5, 8 , 3])).toEqual([1, 3]);
expect(buscoInterseccion([7 , 23, 4], [23, 70])).toEqual([23]);
expect(buscoInterseccion([1, 20 , 3], [22, 5, 7])).toEqual([]);
});
});

0 comments on commit 79e34c1

Please sign in to comment.