You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用map()移除数组对象中的expire、modify属性并保留指定字段?

解决方案

方法一:直接构造目标字段(推荐)

直接在map里生成只包含所需字段的新对象,完全避免引入多余属性:

let objArr = [  
  { "name" : "Rohan", "request": true},   
  { "name" : "Sohan", "request": true, "modify" : "today", "expire": "tomorrow"},     
  { "name" : "Mohan", "request": true, "modify" : "today", "expire": "tomorrow"} 
];

const newArr = objArr.map(v => ({
  request: v.request,
  oldName: v.name,
  newName: v.name + '_copy',
  newRecord: true
}));

console.log(newArr);

这种方式最直接高效,不需要处理多余属性,代码逻辑清晰。

方法二:先扩展再删除多余属性

如果原代码需要保留扩展原对象的写法,可以在生成新对象后删除不需要的属性:

let objArr = [  
  { "name" : "Rohan", "request": true},   
  { "name" : "Sohan", "request": true, "modify" : "today", "expire": "tomorrow"},     
  { "name" : "Mohan", "request": true, "modify" : "today", "expire": "tomorrow"} 
];

const newArr = objArr.map(v => {
  const newObj = { 
    ...v, 
    oldName: v.name, 
    newName: v.name + '_copy', 
    newRecord: true 
  };
  // 删除不需要的属性
  delete newObj.expire;
  delete newObj.modify;
  delete newObj.name; // 原name字段也不需要保留
  return newObj;
});

console.log(newArr);

注意要额外删除原对象里的name字段,因为目标结果中不需要它。

方法三:解构赋值提取所需属性

用对象解构只取出原对象中需要的属性,忽略其他字段:

let objArr = [  
  { "name" : "Rohan", "request": true},   
  { "name" : "Sohan", "request": true, "modify" : "today", "expire": "tomorrow"},     
  { "name" : "Mohan", "request": true, "modify" : "today", "expire": "tomorrow"} 
];

const newArr = objArr.map(({ name, request }) => ({
  request,
  oldName: name,
  newName: name + '_copy',
  newRecord: true
}));

console.log(newArr);

解构写法更简洁,同样能从源头避免引入多余属性,和方法一效果一致。


内容的提问来源于stack exchange,提问作者jacob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:59:19