1

Es posible agregar funciones dentro de un Objeto ? 🤔

Durante el desarrollo de la actividad Bonus: reducción de condicionales me surgio una duda. ¿Es posible agregar funciones dentro de un Objeto en Javascript?.

Luego de ver la clase y las funcionalidades que nos brindan los Objetos en cuanto a la considerable reduccion de condicioneles pasando de esto:

const heroe = prompt("¿Cuál es tu héroe favorito de Marvel?");

if (heroe === "Iron Man") {
  console.log("Robert Downey Jr.");
} elseif (heroe === "Captain America") {
  console.log("Chris Evans");
} elseif (heroe === "Thor") {
  console.log("Chris Hemsworth");
} elseif (heroe === "Hulk") {
  console.log("Mark Ruffalo");
} elseif (heroe === "Black Widow") {
  console.log("Scarlett Johansson");
} elseif (heroe === "Hawkeye") {
  console.log("Jeremy Renner");
} elseif (heroe === "Spider-Man") {
  console.log("Tom Holland");
} elseif (heroe === "Doctor Strange") {
  console.log("Benedict Cumberbatch");
} elseif (heroe === "Captain Marvel") {
  console.log("Brie Larson");
} else {
  console.log("No conozco a ese héroe");
}

A poder crear un objeto que tenga como clave (key) el nombre del personaje y como valor (value) en nombre del actor para este ejemplo

const heroes = {
  "Iron Man": "Robert Downey Jr.",
  "Captain America": "Chris Evans",
  "Thor": "Chris Hemsworth",
  "Hulk": "Mark Ruffalo",
  "Black Widow": "Scarlett Johansson",
  "Hawkeye": "Jeremy Renner",
  "Spider-Man": "Tom Holland",
  "Doctor Strange": "Benedict Cumberbatch",
  "Captain Marvel": "Brie Larson",
};const heroe = prompt("¿Cuál es tu héroe favorito de Marvel?");const sinPersonaje = "No conozco a ese héroe";const heroeEncontrado = heroes[heroe] || sinPersonaje;

console.log(heroeEncontrado);

Pense en crear una funcion que contenga la logica y un objeto, donde su Clave (key) sea la accion a realizar y su Valor (value) sea la funcion.

Recreare este ejemplo con las operaciones basicas matematicas (Sumar, Restar, Multiplicar y Dividir)

Primero cree la funcion que utiizaremos y en ella el objeto con las funciones a utilizar:

functionoperacionesMatematicas(){
  const operaciones = {
    "sumar": function(a, b){
      return a + b;
    },
    "restar": function(a, b){
      return a - b;
    },
    "multiplicar": function(a, b){
      return a * b;
    },
    "dividir": function(a, b){
      return a / b;
    },
  };

Luego solicite al usuario el valor para a y b

const numero1 = parseFloat(prompt("Ingresa el primer número: "));
  const numero2 = parseFloat(prompt("Ingresa el segundo número: "));

  const operacion = prompt("¿Qué operación deseas realizar? (sumar, restar, multiplicar, dividir): ");

  const funcion = operaciones[operacion];

  if (funcion) {
    const resultado = funcion(numero1, numero2);

    console.log(`El resultado de ${operacion} es ${resultado}`);
  } else {
    console.log("Operación no válida");
  }
}

Juntando las dos partes el script final quedaria asi :

functionoperacionesMatematicas() {
  const operaciones = {
    "sumar": function(a, b) {
      return a + b;
    },
    "restar": function(a, b) {
      return a - b;
    },
    "multiplicar": function(a, b) {
      return a * b;
    },
    "dividir": function(a, b) {
      return a / b;
    },
  };

  const numero1 = parseFloat(prompt("Ingresa el primer número: "));
  const numero2 = parseFloat(prompt("Ingresa el segundo número: "));

  const operacion = prompt("¿Qué operación deseas realizar? (sumar, restar, multiplicar, dividir): ");

  const funcion = operaciones[operacion];

  if (funcion) {
    const resultado = funcion(numero1, numero2);
    console.log(`El resultado de ${operacion} es ${resultado}`);
  } else {
    console.log("Operación no válida");
  }
}

¡Pruebalo y Si te sirvio deja un comentario y un 💚!

Escribe tu comentario
+ 2