Nota: Soy muy nuevo en Javascript.
Estoy tratando de crear un sistema en mi sala de chat en el que, si escribe una determinada palabra (contraseña) en el chat, editará su nombre de usuario para incluir una etiqueta de modificación especial. Hago esto porque no tenemos sistemas de perfiles y es la mejor solución que se me ocurrió. Sin embargo, me encontré con un problema, no sé cómo editar los datos de una cadena (en este caso, el nombre de usuario) para agregarle algo con una función. Si alguien pudiera ayudar, sería muy apreciado.
Código:
if(data.message = password) { username.data + "Mod" }Pregunta adicional: en el ejemplo anterior, si (datos.mensaje = contraseña) lo haría de modo que si contiene la variable (contraseña) la cambiaría, o sería simplemente si escribieran "contraseña" que cambiaría ¿eso?
Editar: he movido todo mi código a un repositorio de github para mostrárselo a la gente, puedes encontrarlo aquí . La mayor parte del chat en sí es Javascript, y si tiene alguna pregunta sobre lo que hace algo, ¡simplemente pregunte en los comentarios!
= significa asignación, == y === son comparaciones de igualdad (busque la diferencia)+=== password significa "verdadero si data.message es exactamente igual al valor de la password variable". Si desea ver si la password variable está contenida en la cadena, haga data.message.contains(password) const checkForMod = (data, username) => { if (data.message == password) { username.data += "Mod"; } }Debe volver a asignar el nuevo valor a la variable de esta manera:
if(data.message == password) { username.data = username.data + "Mod"; // or using template string username.data = `${username.data}Mod`; }Asumí que el nombre de usuario es un objeto JSON.
Respuesta a extra: debe usar == (solo el valor) o === (verifique estrictamente el tipo de datos y el valor) en la condición if . Si el data.message de datos es exactamente el valor de la contraseña, entonces se cumple la condición.
Si desea verificar si la contraseña es una subcadena (el mensaje contiene el valor de la contraseña en cualquier parte del mensaje), debe usar String.prototype.includes . demostración a continuación:
if(data.message.includes(password)) { username.data = username.data + "Mod"; // or using template string username.data = `${username.data}Mod`; }Si tienes más dudas, puedes comentar abajo. Actualizaré esta respuesta.
Editar:
Después de leer su comentario, agrego el siguiente ejemplo para mostrarle cómo funciona el código anterior:
/* Author: chankruze (chankruze@geekofia.in) Created: Mon Jan 31 2022 12:46:44 GMT+0530 (India Standard Time) Copyright (c) geekofia 2022 and beyond */ const password = "qwerty1234" const data = { message1: `this is my ${password}`, message2: password, } const username = { data: "chankruze", } console.log(username.data); if (data.message1.includes(password)) { console.log("password found in side data"); username.data += "mod"; } console.log(username.data); if (data.message2 === password) { console.log("exact match"); username.data = `${username.data}mod`; } console.log(username.data);