Вы ищете что-то подобное?
const filterBasedOnToggle = (toggles) => (searchName) => {
const feature = toggles .find (({name}) => name == searchName) || {}
return feature .enabled
}
const featureToggles = [{name: "Name1", description: "Name1 Description", enabled: true}, {name: "Name2", description: "Name2 Description", enabled: false}, {name: "Name3", description: "Name3 Description", enabled: false}];
const enabledByName = filterBasedOnToggle (featureToggles);
console .log (['Name1', 'Name2', 'Name3', 'Name4'] .map (enabledByName))
//~> [true, false, false, undefined]
Эта версия использует find
вместо filter
для сопоставления только с первой ... которая, вероятно, была проблемой подписи в вашей версии. Он возвращает undefined
, если значение не соответствует, но вы можете легко сделать это false
, если хотите. Вы, конечно, могли бы написать это с помощью функций Ramda, но я не вижу там ничего такого, что могло бы сделать это намного проще.