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

JavaScript赋值左侧无效语法错误排查(C3组合图表开发)

解决"Uncaught SyntaxError: Invalid left-hand side in assignment"错误

嘿,我一眼就看到你代码里的问题啦,这个语法错误的根源完全出在这一行:

this._resultSettingsJ.data.types.dataSeries + '_count' = _types[_count].value;

为什么会报错?

JavaScript里,赋值操作的左边必须是一个能被赋值的“目标”(比如变量名、对象的属性引用),但你这里左边是一个字符串拼接的表达式——dataSeries + '_count'是计算出来的字符串结果,不是一个合法的赋值目标,所以浏览器直接抛出了语法错误。

另外还有个隐藏坑:你的循环从_count = 1开始,但_types数组是用push添加元素的,数组索引是从0开始的。第一次循环时,你push了第一个元素到_types,但你却去取_types[_count]也就是_types[1],这时候这个位置根本没有值,会拿到undefined,后续访问.value还会触发新的错误。

修正后的代码

我帮你调整了这两处问题,用方括号语法来动态设置对象属性,同时修正了数组索引的问题:

//COMBINATION STARTS HERE-------------------------------------------------------------------------------------------------
this._initialize_settings_Combination = function () {
    if (!this.isCombinationChart()) return;
    this._resultSettingsJ.data.types = {};
    var _types = [];
    var _series = this.Serieses();
    for (var _count = 1; _count < this.seriesCount; _count++) {
        debugger;
        const currentChartType = _series(_count).chartType;
        _types.push(currentChartType);
        // 用方括号语法动态生成属性名并赋值
        this._resultSettingsJ.data.types[`dataSeries_${_count}`] = currentChartType.value;
        // 如果你想通过_types数组取值,要注意索引是_count-1
        // this._resultSettingsJ.data.types[`dataSeries_${_count}`] = _types[_count - 1].value;
    }
}

关键调整说明

  1. 动态属性赋值:把原来的字符串拼接放到方括号[]里(我还换成了模板字符串,写起来更简洁),这样JavaScript会把拼接后的字符串当作对象的属性名,就能正常完成赋值了。
  2. 数组索引修正:因为_types的索引是从0开始的,而你的循环从1起步,要是想取刚push进去的元素,得用_types[_count - 1],不过直接用currentChartType会更高效,不用再从数组里二次取值。

这样改完之后,语法错误就会消失,还能避免后续可能出现的Cannot read property 'value' of undefined错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:18:44