diff --git a/Tool/number.js b/Tool/number.js index 0b3b18a..bf2106b 100644 --- a/Tool/number.js +++ b/Tool/number.js @@ -186,4 +186,25 @@ export function objectToJSON(ObjectText) { } catch (error) { console.error("解析失败:", error); } +} + +/** + * 根据字段映射表重新命名对象的属性 + * renameObjectKeys + * @param {Array} filteredRows - 过滤后的行数据数组,每个元素是一个对象 + * @param {Object} fieldMapping - 字段映射表,键是原始字段名,值是新的字段名 + * @returns {Array} - 返回一个新的数组,其中对象的属性根据字段映射表进行了重命名 + */ +export function renameObjectKeys(filteredRows, fieldMapping) { + return filteredRows.map(row => { + return Object.keys(row).reduce((acc, key) => { + // 如果字段在映射表中,则使用映射的字段名 + if (fieldMapping[key]) { + const newKey = fieldMapping[key]; + acc[newKey] = row[key]; + } + // 如果字段不在映射表中,则直接跳过(不加入新对象) + return acc; + }, {}); + }); } \ No newline at end of file diff --git a/index.js b/index.js index 36218f7..48eda98 100644 --- a/index.js +++ b/index.js @@ -23,7 +23,8 @@ import { parseNginxLog, toCookiesArray, updateCookies, - objectToJSON + objectToJSON, + renameObjectKeys } from './Tool/number.js'; // ES Module 导出 @@ -38,7 +39,8 @@ export { parseNginxLog, toCookiesArray, updateCookies, - objectToJSON + objectToJSON, + renameObjectKeys }; // CommonJS 导出 @@ -54,7 +56,8 @@ if (typeof module !== 'undefined' && module.exports) { parseNginxLog, toCookiesArray, updateCookies, - objectToJSON + objectToJSON, + renameObjectKeys }; } diff --git a/types/index.d.ts b/types/index.d.ts index a8d44df..5a9221a 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -14,4 +14,5 @@ declare module 'ddmt-tool' { export function toCookiesArray(cookies: string): { [key: string]: string }; export function updateCookies(cookies: string, setCookieArray: string[]): string; export function objectToJSON(ObjectText: string): string | undefined; + export function renameObjectKeys(filteredRows: Array<{ [key: string]: any }>, fieldMapping: { [key: string]: string }): Array<{ [key: string]: any }>; } \ No newline at end of file