Hola, estoy codificando en un Economy-System en este momento, pero tengo un problema. Tengo que comprobar si el usuario tiene datos y si no tiene datos crearlo. Esto es lo que he hecho:
if (UserJSON.user[message.author.id]) { //It doesn't detect the message.author.id console.log("User Data already exists"); return; } else { const newUser = { user: message.author.id, stats: { money: 0 } } UserJSON.push(newUser); fs.writeFileSync("./data/users.json", JSON.stringify(UserJSON, null, 2)); }La función de escritura de datos funciona perfectamente, como puede ver aquí abajo en users.json
[ { "user": "654022997983756328", "stats": { "money": 0 } }, { "user": "917065319724507176", "stats": { "money": 0 } } ]El unico problema es "comprobar si el usuario tiene datos" No detecta
[message.author.id]Alguien me dijo que hiciera
if (UserJSON.[message.author.id].user) {pero lamentablemente tampoco funcionó. ¿Alguien puede ayudarme aquí a solucionar este problema?
Esto se debe a que UserJSON es una matriz y está intentando acceder a la propiedad de "usuario" en la condición if, que no existe. Debe verificar si la matriz UserJSON contiene un objeto que tiene el valor de "usuario" de la condición. Prueba esto: if (UserJSON.find((userObject) => parseInt(userObject.user) === message.author.id)) { console.log("User Data already exists"); return; }