JavaScript:移除对象中以addr开头的属性并提取至新对象
拆分对象中指定前缀的属性
我们可以通过遍历对象键名,筛选出以addr开头的属性,将其移至新对象并从原对象中移除,完整实现代码如下:
const dataObj = { firstName: "David Dynamic", id: "13249906", lastName: "Garcia", address1: "Test Address1", address2: "Test Address2" } // 创建存储被移除属性的新对象 const addrObj = {}; // 遍历原对象的所有键名 Object.keys(dataObj).forEach(key => { // 判断键名是否以"addr"开头 if (key.startsWith('addr')) { // 将属性移至新对象 addrObj[key] = dataObj[key]; // 从原对象中删除该属性 delete dataObj[key]; } }); // 验证结果 console.log('处理后的原对象:', dataObj); console.log('提取出的地址属性对象:', addrObj);
核心细节说明:
- 用
Object.keys()获取对象的所有键名,便于遍历筛选 - 替换原代码的
indexOf检测逻辑,改用String.prototype.startsWith('addr'),更直观地判断键名前缀,代码可读性更高 - 通过
delete操作符移除原对象的目标属性,同时将对应属性值赋值给新对象,完成属性拆分
如果需要保留原对象不被修改,可以先做浅拷贝再处理:
const originalData = { /* 原数据 */ }; const dataObj = { ...originalData }; // 浅拷贝原对象,避免修改原数据 // 后续处理逻辑同上
内容的提问来源于stack exchange,提问作者David Garcia
相关产品推荐
相关产品推荐

