【问题标题】:How to filter on the props of the Record<K, T>如何过滤 Record<K, T> 的 props
【发布时间】:2021-01-19 07:29:39
【问题描述】:

假设我有这个记录:

export const MenuData: Record<Header, HeaderInfo> = {
  val1: {
    message: 'xyz',
    buttonText: 'txt',
    buttonUrl: '/url-abc',
  },
  val2: {
    message: 'xyz123',
    buttonText: 'txt4',
    buttonUrl: '/url-1abcd',
  },
  ... 
}

我想filter/find MenuData 记录基于buttonUrl 属性。
类似MenuData.filter(buttonUrl === '/url-1abcd')
所以在那种情况下会返回整个 val2 对象

有没有办法做到这一点?

【问题讨论】:

  • 你只想要对象的键吗?
  • @AsafAviv 是的,我想要整个对象(刚刚更新了问题)

标签: typescript typescript-utility


【解决方案1】:

您可以在将返回键值数组的对象上调用Object.values,然后使用.find根据条件找到您需要的对象

const obj = Object.values(MenuData).find(obj => obj.buttonUrl === '/url-1abcd')

【讨论】:

    猜你喜欢
    • 2019-07-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 2023-04-08
    • 2021-05-10
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多