es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Asignar un nombre de clave desde un arreglo.

No puedo hacer que la clave sea igual al nombre del valor de índice del array de nombres que se está pasando.

Lo que estoy intentando hacer:
Crear una clave valor de nombres y números para hacer un seguimiento de cuántos nombres duplicados tengo.

Entrada / salida:
nombres = [bob, joe, jill, bob, bill, bill]
el resultado sería {bob:2, joe:1, jill:1, bill:2}

Aún no he llegado a esta parte del código. Actualmente solo estoy tratando de obtener las claves correctas. Pero eso debería dar una idea de lo que estoy intentando hacer.

El problema que tengo:
No puedo crear claves para cada nombre en mi conjunto.

Lo que hice inicialmente:
myset.add({names[i]:0})

Lo cambié a una variable llamada keyname que se asigna justo debajo de mi bucle for.

Esto no cambió nada.

function solution(names) {
const myset = new Set();
for(let i=0; i<names.length; i++){
let keyname = names[i];
if(myset.has(names[i])){
console.log(“ya está incluido”);
}
else(
myset.add({
keyname:0
})
)
}
console.log(myset);
}

consola:

set(5) {
{ keyname: 0 },
{ keyname: 0 },
{ keyname: 0 },
{ keyname: 0 },
{ keyname: 0 }
} i++){=”” let=”” keyname=”names[i];” if(myset.has(names[i])){=”” console.log(“ya=”” está=”” incluido”);=”” }=”” else(=”” myset.add({=”” keyname:0=”” })=”” )=”” }=”” console.log(myset);=”” }=”” consola:=”” set(5)=”” {=”” {=”” keyname:=”” 0=”” },=”” {=”” keyname:=”” 0=”” },=”” {=”” keyname:=”” 0=”” },=”” {=”” keyname:=”” 0=”” },=”” {=”” keyname:=”” 0=”” }=””></names.length; i++){
let keyname = names[i];
if(myset.has(names[i])){
console.log(“ya está incluido”);
}
else(
myset.add({
keyname:0
})
)
}
console.log(myset);
}

consola:

set(5) {
{ keyname: 0 },
{ keyname: 0 },
{ keyname: 0 },
{ keyname: 0 },
{ keyname: 0 }
}>

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema radica en cómo se está creando la clave en el método myset.add. Actualmente, estás creando un objeto con una propiedad llamada keyname, lo cual no es lo que deseas. En su lugar, quieres que la variable keyname se utilice como la clave en sí misma. Para hacer esto, puedes crear un objeto vacío y luego establecer la clave utilizando la notación de corchetes de la siguiente manera:

    myset.add({
      [keyname]: 0
    });
    

    Esto creará un objeto con una clave que es igual al valor de la variable keyname. Los corchetes alrededor de keyname son necesarios para usarlo como una clave dinámica en un literal de objeto. Una vez que hayas realizado este cambio, tu función solution debería funcionar como se pretende.

Comments are closed.