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

如何将JavaScript数组对象转换映射为指定结构的对象

数组对象结构转换实现方案

原始数据结构

主对象data下的criticalErrorsData数组结构如下:

[
    {
        "EmployeeName": {
            "FirstName": "Joe",
            "LastName": "Doe",
            "Suffix": null
        },
        "CriticalErrorCount": 4,
        "HomeDepartment": "Belgrade",
        "SupervisorName": {
            "FirstName": "Test",
            "LastName": "Test",
            "Suffix": null
        }
    }
]

目标转换结构

需要将上述数组转换为如下结构:

const criticalErrorsData = [
    { 
        supervisor: SupervisorName.FirstName + SupervisorName.LastName, 
        department: HomeDepartment, 
        errors: CriticalErrorCount, 
        employee: EmployeeName.FirstName + EmployeeName.LastName 
    },
    // ...其他元素
];

实现方法

你尝试的map()方法完全可行,不需要引入任何辅助变量,直接用数组的map()方法就能完成转换。

你的代码逻辑是正确的,只要变量名与实际数据匹配,运行后就能得到目标结构的数组。如果想让代码更简洁易读,可以用对象解构提取属性,同时用模板字符串优化名称拼接,示例如下:

const criticalErrorsData = data.criticalErrorsData.map(({ EmployeeName, CriticalErrorCount, HomeDepartment, SupervisorName }) => ({
    supervisor: `${SupervisorName.FirstName} ${SupervisorName.LastName}`,
    department: HomeDepartment,
    errors: CriticalErrorCount,
    employee: `${EmployeeName.FirstName} ${EmployeeName.LastName}`
}));

注:如果存在FirstName或LastName为null/undefined的情况,可以添加空值兜底,比如(SupervisorName.FirstName || '') + ' ' + (SupervisorName.LastName || ''),避免出现nullTest这类异常拼接结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 06:30:11