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

如何在向JSON对象添加键值对时为已存在的键名添加递增数字后缀

解决方案

核心思路

这个需求很实用,核心逻辑就是先确认原始键名是否可用,如果已经被占用,就从数字1开始生成带_(number)后缀的新键名,循环检查直到找到一个未被使用的键为止。

代码实现(JavaScript)

以JavaScript为例(毕竟JSON对象在JS里就是普通对象,处理起来最直接):

function addToMap(map, targetKey, value) {
  // 先尝试直接用原始键名存入
  if (!(targetKey in map)) {
    map[targetKey] = value;
    return;
  }

  // 原始键已存在,开始找可用的后缀键
  let currentNum = 1;
  let newKey;
  do {
    newKey = `${targetKey}_(${currentNum})`;
    currentNum++;
  } while (newKey in map);

  // 找到可用键后存入数据
  map[newKey] = value;
}

测试验证

用你给出的示例场景测试一下:

// 初始化你的临时存储对象
const myMap = { "hello": "world" };

// 重复添加hello键
addToMap(myMap, "hello", "do you like pizza?");
addToMap(myMap, "hello", "https://google.com/");

console.log(myMap);

输出结果和预期完全一致:

{ "hello": "world", "hello_(1)": "do you like pizza?", "hello_(2)": "https://google.com/" }

额外说明

  • 这个函数会自动识别所有已存在的带后缀键名——哪怕是你手动添加的hello_(3),下次再添加hello时,函数会从4开始找可用键,不会出现冲突。
  • 如果用其他语言(比如Python),逻辑完全通用,只需要把对象存在性检查的语法换成对应语言的写法就行(比如Python用targetKey not in map)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 15:33:14