Estoy tratando de hacer un bot de discordia para mi servidor (un bot de moneda) y estoy tratando de implementar un sistema de comercio, pero las matrices que estoy usando para los artículos intercambiados tienen artículos cuyos valores cambian aleatoriamente. No he cambiado el valor de las matrices en ningún otro lugar, pero los valores siguen cambiando. ¿Alguien sabe por qué? El código analiza entradas como esta: 3apple,1stick 1axe .
trade.ts
youend = []; themend = []; var temp: Item | undefined; for (var i = 0; i < you.length; i++) { const item = you[i]; for (let i = 0; i < ITEMS.length; i++) { const item2 = ITEMS[i]; temp = undefined; if ( reAll( item .slice(/[az]/i.exec(reAll(item.toLowerCase(), "_", " "))?.index) .toLowerCase(), "_", " " ) === item2.name.toLowerCase() ) { let temp = item2; //@ts-ignore temp.amount = parseInt( item.slice( 0, /[az]/i.exec(reAll(item.toLowerCase(), "_", " "))?.index + 1 ) ); youend.push(temp); console.log(JSON.stringify(temp), youend, themend); } } } temp = undefined; for (var i = 0; i < them.length; i++) { const item = them[i]; for (let i = 0; i < ITEMS.length; i++) { const item2 = ITEMS[i]; temp = undefined; if ( reAll( item .slice(/[az]/i.exec(reAll(item.toLowerCase(), "_", " "))?.index) .toLowerCase(), "_", " " ) === item2.name.toLowerCase() ) { let temp = item2; //@ts-ignore temp.amount = parseInt( item.slice( 0, /[az]/i.exec(reAll(item.toLowerCase(), "_", " "))?.index + 1 ) ); themend.push(temp); console.log(JSON.stringify(temp), youend, themend); } } }la clase de articulo
export class Item { name: string icon: string sell: number durability: number amount: number constructor(name: string, icon: string, sell: number, durability: number, amount: number) { this.name = name this.icon = icon this.sell = sell this.durability = durability this.amount = amount } }No estoy seguro de si esta es la solución, pero parece que está usando dos variables i en los bucles for .
En ambos bucles for , está definiendo dos variables i , usando var y let .
for (var i = 0; i < arr.length; i++) { for (let i = 0; i < arrTwo.length; i++) { } }Esto no debería funcionar correctamente, por lo que una buena solución es simplemente cambiar ambos a diferentes nombres de variables.
for (var i = 0; i < arr.length; i++) { for (let j = 0; i < arrTwo.length; i++) { } } Además, no deberías usar tanto var como let . Deberías apegarte a uno.
for (let i = 0; i < arr.length; i++) { for (let j = 0; i < arrTwo.length; i++) { } }Estos cambios pueden corregir su código.
En conclusión, la solución podría ser cambiar los nombres de las variables.