const loadObject = (selectedweapon) => {
//Loads up the weapon.json
const weaponspath = path.normalize('./damage_calculatons/../Mobs and Weapons/weapons.json')
var file_content = fs.readFileSync(weaponspath);
var weaponjson = JSON.parse(file_content);
//Searches for each weapon
selectedweapon = selectedweapon.toLowerCase()
weaponjson.forEach(mctype => {
mctype.weapon.forEach(category => {
category.material.forEach(material => {
if (material.weapon.toLowerCase() === selectedweapon){
const {weapon, damage, attackspeed, sharpness, strength} = material;
//Renames keys in object
let weaponUsed = {
NAME : weapon,
ATK: damage,
ATKSPEED: attackspeed,
SHARP: sharpness,
STR: strength
}
return(weaponUsed)
}
})
})
})}
const weaponUsed = loadObject('Gold Sword')
console.log(weaponUsed)
I'm trying to take an array from a JSON file, find the object that is looked for in the array, clone the object with different keys, and then return the new object weaponUsed. It's supposed to show the object
{ NAME: 'Gold Sword', ATK: 4, ATKSPEED: 1.6, SHARP: 0, STR: 0 }
, but it instead shows undefined
.
When I do this though
if (material.weapon.toLowerCase() === selectedweapon){
const {weapon, damage, attackspeed, sharpness, strength} = material;
let weaponUsed = {
NAME : weapon,
ATK: damage,
ATKSPEED: attackspeed,
SHARP: sharpness,
STR: strength
}
console.log(weaponUsed)
}
})
})
})}
It shows the object { NAME: 'Gold Sword', ATK: 4, ATKSPEED: 1.6, SHARP: 0, STR: 0 }