如何筛选对象中特定类型的属性,仅提取返回布尔类型属性集合
实现方案
你可以通过Object.entries()搭配数组的filter()方法快速实现,核心逻辑是遍历对象属性后判断值的类型是否为boolean:
const analysis = { cultural1: true, cultural2: false, cultural3: true, cultural4: true, culturalScore: 75, environment1: true, environment2: true, environment3: true, environment4: true, environmentScore: 100, createdAt: "2021-09-15 11:43:58 -0400", id: 543, review: 'Lorem ipsum odor' } // 方案1:得到 [ [键, 值], [键, 值] ] 格式的数组,包含所有布尔属性的键和值 const boolEntries = Object.entries(analysis).filter(([key, value]) => typeof value === 'boolean') // 方案2:如果只需要布尔属性的键名组成的数组 const boolKeys = Object.keys(analysis).filter(key => typeof analysis[key] === 'boolean') // 方案3:如果只需要布尔属性的值组成的数组 const boolValues = Object.values(analysis).filter(value => typeof value === 'boolean')
以方案1为例,输出结果如下:
[ ["cultural1", true], ["cultural2", false], ["cultural3", true], ["cultural4", true], ["environment1", true], ["environment2", true], ["environment3", true], ["environment4", true] ]
内容的提问来源于stack exchange,提问作者Antoine Lessard
相关产品推荐
相关产品推荐

