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

替换JavaScript对象键名时出现TypeError: remove不是函数错误

解决JS对象键名替换时的TypeError问题

首先,你遇到的TypeError: getTaskCellData.remove is not a function错误,核心原因是普通JavaScript对象并没有remove()和put()方法——这两个方法是Map对象专属的,而你当前操作的是普通JSON风格对象,自然会触发报错。

接下来我们一步步实现你想要的需求:移除键名的数字后缀,替换原对象的键名并保留对应值。

正确实现步骤

  • 第一步:从原键名中移除数字后缀(你用replace(/[0-9]/g, '')的写法是没问题的)
  • 第二步:将原键对应的值赋值给新键
  • 第三步:用delete操作符删除原键(这是普通对象删除属性的标准方式)

修正后的完整代码

var getColumnTitle = "hour231"; 
var getTaskCellData = {"hour231":23,"name":"hello world","other":"fields"}; 
var alphaTitle = getColumnTitle.replace(/[0-9]/g, ''); 

// 给新键赋值原键对应的值
getTaskCellData[alphaTitle] = getTaskCellData[getColumnTitle];
// 删除旧键
delete getTaskCellData[getColumnTitle];

console.log(getTaskCellData);
// 输出结果: { name: 'hello world', other: 'fields', hour: 23 }

额外场景说明

如果你的业务场景需要频繁增删键值对,也可以用Map来操作,转换方式如下:

var getColumnTitle = "hour231"; 
var getTaskCellData = {"hour231":23,"name":"hello world","other":"fields"}; 
var alphaTitle = getColumnTitle.replace(/[0-9]/g, ''); 

// 把普通对象转为Map
const taskMap = new Map(Object.entries(getTaskCellData));
// 删除旧键并添加新键
taskMap.set(alphaTitle, taskMap.get(getColumnTitle));
taskMap.delete(getColumnTitle);
// 再转回普通对象
const updatedData = Object.fromEntries(taskMap);

console.log(updatedData);
// 输出结果: { name: 'hello world', other: 'fields', hour: 23 }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:37:16