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 }
}>
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 llamadakeyname
, lo cual no es lo que deseas. En su lugar, quieres que la variablekeyname
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:Esto creará un objeto con una clave que es igual al valor de la variable
keyname
. Los corchetes alrededor dekeyname
son necesarios para usarlo como una clave dinámica en un literal de objeto. Una vez que hayas realizado este cambio, tu funciónsolution
debería funcionar como se pretende.