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

如何在jQuery中通过动态列名访问JSON对象属性

解决方案

你的问题核心是访问对象属性时混淆了点语法和方括号语法,还有一处变量拼写错误,修正后就能正常获取目标值了:

关键错误说明

  1. 变量拼写不一致:声明的是curentCol,赋值用的是currentCol,先统一变量名
  2. 访问动态属性必须用方括号语法:当属性名是变量时,不能用.(点语法只适用于固定属性名),正确写法是json[i][currentCol],而不是json[i].validColumnsArray[j]

修改后的核心代码片段

$.each(json, function (i) {
    //TODO: populate the columns with data here
    for (let j = 0; j < validColumnsArray.length; ++j) {
        // 统一变量名
        var currentCol = validColumnsArray[j];                                         
        console.log(currentCol);                                         
        var test = JSON.stringify(json[i]);
        console.log(test);                  
        
        // 用方括号语法访问动态属性
        arr.push(json[i][currentCol]);                                   
        console.log(arr);
    }   
});

额外优化建议

  • 可以简化列匹配逻辑,用filter替代嵌套循环,更高效简洁:
    // 替换原来的嵌套循环,筛选出匹配的有效列
    validColumnsArray = Object.keys(columnsIn).filter(key => arr.includes(key) && key.length > 0);
    
  • 初始的json != ''判断不够严谨,建议改成Array.isArray(json) && json.length > 0,避免非数组类型导致的错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:52:44