Это будет весело! На самом деле не существует простого (встроенного) способа сделать это. В ответе Маркуса он упоминает, что он нажимает на предмет в конце, но это только половина вашей проблемы. Если вы хотите убедиться, что там нет элемента «ветчины», вам придется пройти через него с помощью функции, подобной этой:
function array_has_item_already(array, key, look_for_key_value) {
for( var i = 0; i < array.length; i++) {
if( typeof array[i][key] != 'undefined' && array[i][key] == look_for_key_value )
return array[i];
}
return false;
}
вы бы назвали это так, и он вернул бы false, если бы не нашел предмет:
array_has_item_already(abilities.FGI.bonuses, "name", "ham");
Я оставлю это вам, чтобы выдвинуть функцию, чтобы она обновлялась или передавалась или что-то в этом роде. Веселись!
UPDATE
Я только что понял, что вы ищете что-то в python. Уэлп, вы можете полностью игнорировать мой ответ или перевести его, как в js. HA.