javascript - 如何使用 RegExp 过滤对象并返回一个新对象
问题描述
我有一个对象:
object1 = {
dEabc: 1,
dEasdf: 2,
dEjfhs: 5,
bhsn: 7,
oki: 9
}
我的目标是得到一个新对象,它只包含带有“dE”的键,这意味着:
object1 = {
dEabc: 1,
dEasdf: 2,
dEjfhs: 5,
}
是我所期望的对象。
我尝试过的是,首先我从这个对象中获得了所有密钥
Object.keys(object);
然后我使用 RegExp 检查对象中的属性是否具有相关键。如果不是我用
delete object[key];
有什么解决办法吗?
解决方案
您可以使用它Object.entries()
来解构对象,filter()
并使用以下方法重建它Object.fromEntries()
:
const o = {
dEabc: 1,
dEasdf: 2,
dEjfhs: 5,
bhsn: 7,
oki: 9
};
const result = Object.fromEntries(Object.entries(o).filter(([k]) => k.includes('dE')));
console.log(result);
这么简单的表达式不需要正则表达式。
推荐阅读
- android - 通过 Android YouTube 播放器 SDK 播放时,YouTube 视频数量不会增加
- visual-studio - 使用 VSTS 和 Nuget Pack 自动添加 nuget 依赖项
- node.js - 尝试使用 nodejs 中的请求库进行代理时出现错误
- angular - 任何人都可以向我解释给定的代码片段吗?它能做什么?
- java - 否则,如何在 JTextfield 中显示 JComboBox 的选定项目?
- drupal-8 - D8覆盖核心类
- java - JavaFX FXML - 使用 fx:id 获取 MenuItem
- html - 如何在AngularJS中循环多个表TH
- python - 用ffmpeg切割多个片段
- jsf - Liferay 7 JSF 动作未触发