如何使用正则表达式过滤对象并返回新对象

我有一个对象:


object1 = {

dEabc: 1,

dEasdf: 2,

dEjfhs: 5,

bhsn: 7,

oki: 9

}


我的目标是获得一个仅包含带有“dE”键的新对象,这意味着:


object1 = {

dEabc: 1,

dEasdf: 2,

dEjfhs: 5,

}

是我所期望的对象。


我尝试过的是,首先我从这个对象中获得了所有密钥


Object.keys(object);

然后我使用正则表达式来检查对象中的属性是否具有相关键。如果不是,我使用


delete object[key];

有什么解决方案吗?


Smart猫小萌
浏览 116回答 3
3回答

摇曳的蔷薇

var obj= {dEabc: 1,dEasdf: 2,dEjfhs: 5,bhsn: 7,oki: 9}let aa = Object.keys(obj).reduce((acc,ele)=>{return (ele.indexOf('dE') != -1) ? {...acc,...{[ele]:obj[ele]}} : acc},{});console.log(aa); 

天涯尽头无女友

使用 ,可以按以下方式完成:reduceobject1 = {dEabc: 1,dEasdf: 2,dEjfhs: 5,bhsn: 7,oki: 9}let finalObj = Object.keys(object1).filter(i=>i.includes('dE')).reduce((obj, curr)=>{     return {...obj, ...{[curr]: object1[curr]}};},{});console.log(finalObj);

叮当猫咪

您可以使用它来解构对象,它,并使用: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);不需要正则表达式的表达式如此简单。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript