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

TypeScript中向数组推入对象报错(expected ',' 1005)如何解决?

错误原因及解决方案

错误根源

你遇到的expected ',' 1005语法错误,核心原因是动态属性名的语法使用错误:
在JavaScript/TypeScript中,当用变量或表达式作为对象的属性名时,必须用**方括号[]**包裹这个表达式。你的代码里{elem.ElementIdentifier:5}的写法不符合语法规范,解析器无法识别elem.ElementIdentifier作为动态键,会将其拆解为无效标识符,因此抛出期待逗号的错误。

修正后的代码

第一步:修复动态属性名语法

把{elem.ElementIdentifier:5}改成{[elem.ElementIdentifier]: 5},用方括号包裹动态键表达式:

const arrOfObjects: any[] = [];

const elems = [
    {
        "ResultRow": "1",
        "ElementIdentifier": "A",
    },
    {
        "ResultRow": "2",
        "ElementIdentifier": "B",
    }, 
];

// 修复动态属性名语法
elems.map(elem => arrOfObjects.push({[elem.ElementIdentifier]: 5}));

第二步:优化遍历方式(可选但推荐)

map方法的设计目的是转换数组并返回新数组,你这里只是遍历执行push操作,用forEach更符合语义,避免产生不必要的空数组:

const arrOfObjects: any[] = [];

const elems = [
    {
        "ResultRow": "1",
        "ElementIdentifier": "A",
    },
    {
        "ResultRow": "2",
        "ElementIdentifier": "B",
    }, 
];

// 用forEach替代map,语义更清晰
elems.forEach(elem => arrOfObjects.push({[elem.ElementIdentifier]: 5}));

额外提示

你的elems数组最后一个元素后有多余尾逗号(当前JS/TS允许尾逗号,但保持代码整洁可去掉),不过这不是导致当前错误的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:42:06