Эта идея пришла ко мне недавно, поэтому я сел сегодня и попытался ее проверить, но не смог придумать элегантный способ.
Я пытаюсь добиться следующего видапроверка: предположим, что у нас есть наш начальный символьный объект aka oldCharacterObject
stats: {
damage: 1,
defence: 1
},
equipment: {
arms: null,
legs: null
},
inventory: {
boots: {
id: 123,
equipped: false,
damage: 10
},
gloves: {
id: 456,
equipped: false,
defence: 5
}
}
Затем мы запускаем его через функцию, давайте вызовем ее equipItem(oldCharacterObject, itemID)
, которая выполняет определенную логику, чтобы выплевывать новый объект, мы неМы не обязательно знаем, что это за логика, но у нас есть доступ к этой функции, и она возвращает нам newCharacterObject
, который выглядит следующим образом (если мы оснастим ботинки как пример)
stats: {
damage: 11,
defence: 1
},
equipment: {
arms: null,
legs: 123
},
inventory: {
boots: {
id: 123,
equipped: true,
damage: 10
},
gloves: {
id: 456,
equipped: false,
defence: 5
}
}
Теперь, зная наши oldCharacterObject
и newCharacterObject
, а также доступ к equipItem
можно ли каким-либо образом подтвердить, может ли oldCharacterObject
, проходящий через эту функцию, стать newCharacterObject
, но на этот раз мы не знаем аргумента itemID
для этого?