javascript - 按部分键名删除对象项
问题描述
我有一个看起来像这样的 javascript 对象:
{limit: 2, page: 1, filter[description]: 'foo', filter[id]: 1}
我只需要删除与过滤器相关的项目并保持这种方式:
{limit: 2, page: 1}
执行此过程的最佳执行方式是什么?
解决方案
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))
推荐阅读
- php - 提交表单后如何将页面重定向到最后增加的id
- c++ - static_assert 在宏中,但也可以扩展为可以用作函数参数的东西
- linux - RTMP_ReadPacket,无法读取 RTMP 数据包头 rtmp://a.rtmp.youtube.com/live2:发生未知错误
- hadoop - Hadoop FsImage中DSQUOTA和NSQUOTA列的含义是什么?
- javascript - 无法从 Angular 的下拉列表中填充和发布值
- python-3.x - 命令行中的 python3 版本与 /usr/local/lib 中的版本不匹配
- python-3.x - 加密算法随机替换一些字母
- visual-studio-2017 - 使用 LogicNP CryptoObfuscator 混淆 Excel 插件
- asp.net - 将 vuejs 与 cshtml 和 js 一起使用是否正确(没有 webpack)
- woocommerce - 在 WooCommerce 中将产品添加到购物车之前隐藏发货消息