Проверьте, можем ли мы получить newObject, запустив oldObject через указанную функцию - PullRequest
0 голосов
/ 16 октября 2019

Эта идея пришла ко мне недавно, поэтому я сел сегодня и попытался ее проверить, но не смог придумать элегантный способ.

Я пытаюсь добиться следующего видапроверка: предположим, что у нас есть наш начальный символьный объект 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 для этого?

...