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

JavaScript使用map遍历数组时如何通过变量key获取对象属性

问题解决说明

错误根因

原有写法无法取值的核心原因是语法逻辑错误:res.datos.cc[0]的作用是读取datos对象下名为cc的属性的第0位元素,而非将cc数组的第0位元素作为键名读取datos的对应属性。
在JavaScript中如果要使用变量/表达式作为对象的键名取值,必须使用方括号访问语法。

实现方案

该需求完全可以通过map方法实现,以下是两种适用场景的写法:

手动指定列对应关系

如果你需要手动控制column和cc数组下标的对应关系,直接修改取值语法即可:

var cc = ['key1','key2','key3','key4','key5'];
let result = centers.map(res => {
    let columns = {
        'column1': res.datos[cc[0]], 
        'column2': res.datos[cc[1]]
        // 可按照需求自行扩展更多列配置
    }
    return columns;
})

批量自动生成列

如果cc数组元素较多,不需要手动逐个配置,可以直接遍历cc数组自动生成columns对象:

var cc = ['key1','key2','key3','key4','key5'];
let result = centers.map(res => {
    let columns = {};
    // 遍历cc数组,自动生成column1、column2...的键值对
    cc.forEach((key, index) => {
        columns[`column${index + 1}`] = res.datos[key];
    })
    return columns;
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 04:45:07