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

如何使用JavaScript在保存前修改JSON属性名 将id改为groupId生成新数组

你可以使用ES6+的map方法配合对象解构实现需求,该方案不会修改原数组,属于无副作用的操作,推荐优先使用:

const myArr = [
    {
        "id": 12,
        "creationTimestamp": "2021-09-15 15:01:11",
        "groupName": "one",
        "$$hashKey": "object:15"
    },
    {
        "id": 13,
        "creationTimestamp": "2021-09-15 15:01:14",
        "groupName": "two",
        "$$hashKey": "object:16"
    },
    {
        "id": 14,
        "creationTimestamp": "2021-09-15 15:01:19",
        "groupName": "three",
        "$$hashKey": "object:17"
    }
]

const array2 = myArr.map(({ id, ...rest }) => ({
  groupId: id,
  ...rest
}))

实现逻辑说明

  • map方法遍历原数组,每处理一个元素就返回一个新对象,最终生成全新数组,不会改动原数组的任何内容
  • 解构每个对象取出id属性,剩余其他所有属性存入rest对象
  • 构造新对象时将原id的值赋值给groupId字段,再展开rest保留其他所有原有属性

如果需要兼容低版本ES运行环境,可以用普通循环实现:

var array2 = [];
for (var i = 0; i < myArr.length; i++) {
  var newItem = {};
  var current = myArr[i];
  for (var key in current) {
    if (key === 'id') {
      newItem.groupId = current[key];
    } else {
      newItem[key] = current[key];
    }
  }
  array2.push(newItem);
}

注意:不推荐直接修改原数组对象的实现方式,会导致原始数据被污染,如果你确实需要这么做,可以用下面的写法:

// 副作用写法:会修改原数组的对象属性
const array2 = myArr.map(item => {
  item.groupId = item.id;
  delete item.id;
  return item;
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:15:03