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

如何将指定数组转换为以fieldApiName为键的Object键值对?

数组转指定键值对对象的实现方法

给定如下JavaScript数组:

let records = [
    {
        "fieldApiName": "Store__c",
        "enabled": true
    },
    {
        "fieldApiName": "Portal__c",
        "enabled": false
    }
];

要将其转换为以fieldApiName的值为键、enabled的值为对应值的对象(目标格式:{Store__c: true, Portal__c: false}),可以用以下几种方法实现:

方法1:使用Array.reduce()

这是最常用的转换方式,通过累加器逐步构建目标对象:

const result = records.reduce((acc, curr) => {
    acc[curr.fieldApiName] = curr.enabled;
    return acc;
}, {});

console.log(result); // 输出:{Store__c: true, Portal__c: false}

逻辑说明:初始化一个空对象作为累加器acc,遍历数组中的每个元素curr,将curr.fieldApiName作为键、curr.enabled作为值添加到acc中,最后返回累加器。

方法2:使用Array.forEach()

这种方式逻辑更直观,手动遍历数组并赋值:

const result = {};
records.forEach(item => {
    result[item.fieldApiName] = item.enabled;
});

console.log(result); // 输出:{Store__c: true, Portal__c: false}

逻辑说明:先创建空对象result,遍历数组的每个元素,直接给result添加对应的键值对。

方法3:使用Object.fromEntries()(ES2019+)

这种方式更简洁,先将数组转换为[键, 值]的二维数组,再转成对象:

const result = Object.fromEntries(
    records.map(item => [item.fieldApiName, item.enabled])
);

console.log(result); // 输出:{Store__c: true, Portal__c: false}

逻辑说明:先用map把每个对象转成[fieldApiName, enabled]的数组,再通过Object.fromEntries将二维数组直接转换为键值对对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:33:14