`Javascript` 中对象的键的顺序遵循数字键的升序和非数字键的插入顺序。也就是说,`JS` 会把看起来像数字的键提前并按升序排序,剩下的按插入顺序排序,如: const obj = { k1: 'v1', k2: 'v2', '1': '1', '0': '0' } // 0 1 k1 k2 所以只要键不是数字就可以 function replaceObjKeyWithOrder( obj: T, kOld: keyof T & string, kNew: string, ) { const entries = Object.entries(obj), entry = entries.find(([k]) => k === kOld) entry && (entry[0] = kNew) return Object.fromEntries(entries) } const tableData = [ { A: "12A", B: "12B", }, { A: "13A", B: "13B", }, ], newTableData = tableData.map((v) => replaceObjKeyWithOrder(v, "A", "D")) console.log("before:", tableData) console.log("after:", newTableData) before: [ { A: "12A", B: "12B" }, { A: "13A", B: "13B" } ] after: [ { D: "12A", B: "12B" }, { D: "13A", B: "13B" } ]