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

TypeScript中如何移除对象数组中键名的方括号?

直接修改对象数组中entries的键名(移除方括号)

你之前的问题出在:只处理了键名的字符串替换,但没真正修改原对象的属性——要改变原entries对象的键,必须添加新键并赋值,再删除旧键,这样才能让原数组的内容同步更新。

可以直接修改原data数组,不需要创建新变量,具体代码如下:

// 原始数据
const data = [
  {title: "Title1", entries: { 'Entry1': 333333, '[ABC]Entry2': 1234, 'Entry3': 5555 }}, 
  {title: "Title2", entries: { '[ABC]Entry1': 5555, 'Entry2': 4444,'Entry3': 2222 }}
];

// 遍历每个数组元素
data.forEach(item => {
  // 获取当前entries的所有键名
  const keys = Object.keys(item.entries);
  
  keys.forEach(oldKey => {
    // 移除所有方括号生成新键名
    const newKey = oldKey.replace(/\[|\]/g, '');
    
    // 仅当键名有变化时执行修改
    if (newKey !== oldKey) {
      // 把旧键的值转移到新键
      item.entries[newKey] = item.entries[oldKey];
      // 删除旧键
      delete item.entries[oldKey];
    }
  });
});

// 此时打印data就能看到更新后的结果
console.log(data);

这段代码的逻辑是:

  • 遍历data数组里的每个对象
  • 对每个对象的entries属性,逐个处理它的键名
  • 用正则表达式替换掉键名里的所有[和],生成新键
  • 将旧键对应的值赋给新键,再删除旧键,直接修改原entries对象

执行后,原data数组的内容就会直接更新,无需额外存储新变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:10:17