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

删除pack1后,如何高效重新索引JSON对象的pack系列键?

高效重命名对象键的实现方法

场景说明

删除所有对象的pack1键后,数组内对象的键为pack0、pack2、pack3、pack4,需要将这些键重新索引为pack0、pack1、pack2、pack3。


方法一:固定键直接重命名(性能最优)

如果明确知道要处理的键,直接逐个重命名是最高效的方式,无需额外的数组遍历或排序操作:

default_data.forEach(item => {
  // 将pack2重命名为pack1
  if ('pack2' in item) {
    item.pack1 = item.pack2;
    delete item.pack2;
  }
  // 将pack3重命名为pack2
  if ('pack3' in item) {
    item.pack2 = item.pack3;
    delete item.pack3;
  }
  // 将pack4重命名为pack3
  if ('pack4' in item) {
    item.pack3 = item.pack4;
    delete item.pack4;
  }
});

方法二:通用自动重索引(扩展性更强)

如果后续可能出现键的变化(比如删除其他pack系列键),可以用通用逻辑自动处理,无需修改代码:

default_data.forEach(item => {
  // 提取所有pack开头的键,并按数字部分排序
  const sortedPackKeys = Object.keys(item)
    .filter(key => key.startsWith('pack'))
    .sort((a, b) => parseInt(a.slice(4)) - parseInt(b.slice(4)));
  
  // 遍历排序后的键,重新分配索引
  sortedPackKeys.forEach((oldKey, newIndex) => {
    const newKey = `pack${newIndex}`;
    if (oldKey !== newKey) {
      item[newKey] = item[oldKey];
      delete item[oldKey];
    }
  });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 15:03:20