如果对象的一个属性的值与常量匹配,我想返回另一个属性。
示例:
// The Array
[
{name: "Name1", description: "Name1 Description", enabled: true},
{name: "Name2", description: "Name2 Description", enabled: false},
{name: "Name3", description: "Name3 Description", enabled: false}
]
// The Constant
enum constant {
Name1 = 'Name1',
Name2 = 'Name2',
Name3 = 'Name3'
}
// What I want to return
// Value of enabled property, for the matching object
这是我写的代码:
const filterBasedOnToggle = (featureTogglesArray: IFeatureToggle[], featureToggle: Toggle): boolean[] => {
return featureTogglesArray.filter((feature: IFeatureToggle) => feature.name === featureToggle).map(featureProperty => featureProperty.enabled);
};
正如您通过类型所看到的,返回的是 bool 值数组。我想返回纯值。有任何想法吗?谢谢!!
最佳答案
没有检查您的代码是否有效,但正如您所说,它返回一个 bool 数组,因此请尝试使用 array.find
来获取第一个匹配项。
const MATCH = featureTogglesArray.find((feature: IFeatureToggle) => feature.name === featureToggle);
return MATCH === undefined ? false : MATCH.enabled;
关于javascript - Ramda 或 ES6 - 在过滤对象数组后返回对象属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59846268/