首页 > 解决方案 > 按部分键名删除对象项

问题描述

我有一个看起来像这样的 javascript 对象:

{limit: 2, page: 1, filter[description]: 'foo', filter[id]: 1}

我只需要删除与过滤器相关的项目并保持这种方式:

{limit: 2, page: 1}

执行此过程的最佳执行方式是什么?

标签: javascriptobject

解决方案


Object.entries假设这些应该是带引号的键,您可以在调用和之间过滤键值对Object.fromEntries

此版本将删除密钥开始的所有条目filter[。但是你可以很容易地改变它:

const removeFilters = (obj) => Object .fromEntries (Object .entries (obj) 
  .filter(([k, v]) => !k.startsWith('filter[')
))

const input = {limit: 2, page: 1, 'filter[description]': 'foo', 'filter[id]': 1}

console .log (removeFilters (input))


推荐阅读