我有一个这样的数组:
baseBreakpoints: [
'xLarge',
'large',
'largeMedium',
'medium',
'smallMedium',
'small',
'xSmall'
]
……我有一个这样的对象:
breakpoints = {
"gtMedium": true,
"xLarge": true,
"gtLargeMedium": true,
"giant": false,
"small": false,
"ltLargeMedium": false,
"gtLarge": true,
"xSmall": false,
"largeMedium": false,
"medium": false,
"gtSmall": true,
"large": false,
"smallMedium": false
}
我需要在对象中找到 true
并且存在于数组中的键。例如,在上面的示例中,该值将为 xLarge
,因为 xLarge === true
在对象中并且存在于 breakpoints
数组中。
有什么建议吗?如果有帮助,Lodash 已经是项目的依赖项。
最佳答案
您可以通过查找断点
来过滤baseBreakpoints
。
var baseBreakpoints = ['xLarge', 'large', 'largeMedium', 'medium', 'smallMedium', 'small', 'xSmall'],
breakpoints = { gtMedium: true, xLarge: true, gtLargeMedium: true, giant: false, small: false, ltLargeMedium: false, gtLarge: true, xSmall: false, largeMedium: false, medium: false, gtSmall: true, large: false, smallMedium: false },
result = baseBreakpoints.filter(k => breakpoints[k]);
console.log(result);
ES5
var baseBreakpoints = ['xLarge', 'large', 'largeMedium', 'medium', 'smallMedium', 'small', 'xSmall'],
breakpoints = { gtMedium: true, xLarge: true, gtLargeMedium: true, giant: false, small: false, ltLargeMedium: false, gtLarge: true, xSmall: false, largeMedium: false, medium: false, gtSmall: true, large: false, smallMedium: false },
result = baseBreakpoints.filter(function (k) { return breakpoints[k]; });
console.log(result);
关于javascript - 在一个对象中找到一个为真的键并且匹配数组中的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47356490/