为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Smart猫小萌 2022-09-11 20:22:50
我有一个对象: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];有什么解决方案吗?
查看完整描述

3 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

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); 


查看完整回答
反对 回复 2022-09-11
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

使用 ,可以按以下方式完成:reduce


object1 = {

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);


查看完整回答
反对 回复 2022-09-11
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

您可以使用它来解构对象,它,并使用: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);

不需要正则表达式的表达式如此简单。


查看完整回答
反对 回复 2022-09-11
  • 3 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号