从对象中提取名称与测试匹配的属性 [英] From an object, extract properties with names matching a test

查看:50
本文介绍了从对象中提取名称与测试匹配的属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 props 对象,它将包含一组未知的属性,我想根据它们的前缀提取其中的一些属性.我有一些有用的东西(很棒!)但似乎很啰嗦,我想知道是否有更惯用的方法?

I have a props object which will contain an unknown set of properties, some of which I want to extract based on their prefix. I have something that works (great!) but it seems long-winded, and I want to know if there's a more idiomatic way of doing it?

const props = {
  bingo: 1,
  bongo: 2,
  mingo: 3,
  bango: 4
}
const bFields = {}
Object.keys(props).filter(k => (k.startsWith('b'))).forEach(k => (
  bFields[k] = props[k]
))

console.log(props)
console.log(bFields)

推荐答案

您也可以使用 reduce:

const props = {
  bingo: 1,
  bongo: 2,
  mingo: 3,
  bango: 4
}
const bFields = Object.keys(props).reduce((acc, prop) => {
  if (prop.startsWith('b')) {
    acc[prop] = props[prop]
  }

  return acc
}, {})

console.log(props);
console.log(bFields);

这篇关于从对象中提取名称与测试匹配的属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆