首页 > 解决方案 > 如何使用 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];

有什么解决办法吗?

标签: javascript

解决方案


您可以使用它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);

这么简单的表达式不需要正则表达式。


推荐阅读