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

如何移除JavaScript对象中所有键名的首字符?

解决方案

报错原因

你的赋值语句逻辑完全颠倒,且左值不符合JS语法要求:

  • data[k].substring(1)是字符串处理后的临时返回值,不是可被赋值的变量或对象属性,JS不允许给这类临时计算结果赋值
  • 你需要修改的是对象的键名而非键值,上述代码操作的是键值,完全偏离需求

实现方案

方案1:直接修改原对象

for(let k in data) {
  // 仅处理下划线开头的键,兼容其他正常键名
  if(k.startsWith('_')) {
    const newKey = k.substring(1)
    // 给新键赋值原键对应的数值
    data[newKey] = data[k]
    // 删除旧的带下划线的键
    delete data[k]
  }
}
console.log(data)

方案2:生成新对象,不污染原始数据

const newData = Object.fromEntries(
  Object.entries(data).map(([key, value]) => {
    return [key.startsWith('_') ? key.substring(1) : key, value]
  })
)
console.log(newData)

两种方案处理后的最终数据结构均为:

{
  batch: "Batch", 
  canDelete: true,
  client: "me",
  extension: "MP4",
  type: "video/mp4"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:21:02