У меня есть версия (например, алмазно-переносная ), и я хочу отфильтровать встречи. Встречи возвращают данные, такие как Diamond . Я могу сделать простую проверку строки (что я сейчас делаю), но это не идеально, потому что она не идеальна. Я мог бы жестко кодировать каждый, но это побеждает цель API и требует обновления в любое время, когда вводятся новые данные, что, то есть, я хочу избежать 100%.let filteredEncounters = $derived.by(() => {
console.log(encounters);
if (version === 'all') return encounters;
return encounters
.map((e) => {
// TODO: Stupid string match: checks if `version` (eg. `diamond-pearl`) includes `version.name` (eg. `diamond`)
// In the future, we need to map games and versions which are different
const matchingVersions = e.version_details.filter((v) => version.includes(v.version.name));
if (matchingVersions.length > 0) {
return {
...e,
version_details: matchingVersions
};
}
return null;
})
.filter(Boolean);
});
Подробнее здесь: https://stackoverflow.com/questions/796 ... me-version