Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

118
Visualizações
Intentando devolver el valor de una matriz de objetos con dos claves iguales a una función. JS Rock papel tijera spock lagarto juego

Aquí está la const que contiene la matriz de objetos:

 const SELECTIONS = [{
 name: 'fire',
 emoji: '🔥',
 beats: 'air',
 beats: 'lizard'
 },
 {
 name: 'water',
 emoji: '🌊',
 beats: 'spock',
 beats: 'fire'

 },
 {
 name: 'air',
 emoji: '💨',
 beats: 'water',
 beats: 'lizard',
 },
 {
 name: 'lizard',
 emoji: '🦎',
 beats: 'air',
 beats: 'spock',
 },
 {
 name: 'spock',
 emoji: '🧛‍♂️',
 beats: 'fire',
 beats: 'water',
 },
];

Aquí está la función que devuelve el ganador al comparar los valores clave/propiedad de la selección del jugador y la computadora

 function isWinner(selection, opponentSelection) {
 return selection.beats === opponentSelection.name
}

Agregué un par al objeto ya que tomé un juego de papel, piedra y tijera y lo convertí en un juego de papel, piedra, tijera, spock y lagarto.

O al menos lo he intentado...

Quiero que la función compare ambos 'beats'. He intentado reescribir el objeto y la función sin éxito.

¿Alguien tiene una pista?

almost 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Tus objetos no van a funcionar como los tienes, ya que no puedes tener dos propiedades con el mismo nombre. es decir, no puede tener dos beats de tiempo en el mismo objeto porque el segundo sobrescribirá al primero. p.ej

 {
 name: 'fire',
 emoji: '🔥',
 beats: 'air',
 beats: 'lizard'
}

en realidad será

 {
 name: 'fire',
 emoji: '🔥',
 beats: 'lizard'
}

Porque los beats se están configurando para lizard al final.

Para solucionarlo, ¿por qué no poner sus beats como una array esa manera puede actualizar fácilmente su método isWinner para hacer lo que quiera usando includes para ver si el elemento está incluido en la array de beats ?

Por ejemplo.

 const SELECTIONS = [{
 name: 'fire',
 emoji: '🔥',
 beats: ['air', 'lizard']
 },
 {
 name: 'water',
 emoji: '🌊',
 beats: ['spock', 'fire']

 },
 {
 name: 'air',
 emoji: '💨',
 beats: ['water', 'lizard']
 },
 {
 name: 'lizard',
 emoji: '🦎',
 beats: ['air', 'spock']
 },
 {
 name: 'spock',
 emoji: '🖖',
 beats: ['fire', 'water']
 },
];


function isWinner(selection, opponentSelection) {
 return selection.beats.includes(opponentSelection.name);
}

const fire = SELECTIONS[0];
const lizard = SELECTIONS[3];
const spock = SELECTIONS[4];

console.log(isWinner(fire, lizard)); // true
console.log(isWinner(lizard, fire)); // false
console.log(isWinner(lizard, spock)); // true
console.log(isWinner(spock, fire)); // true 

// etc...

almost 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda