javascript - 将字符串传递给 "let"中的对象属性会得到 "Unexpected token }"

标签 javascript

我正在尝试制作一个“通用”图表函数,它采用一系列参数来绘制具有不同标签和基线值的不同数据值。我创建了以下函数来处理此问题:

function ProcessChart(obj, valToChart, desc, element, baselineVal) {
    let arr = obj.map(e => {
        let { dateTime, [valToChart] } = e; // ERROR: Unexpected token }
        return [new Date(dateTime), +[valToChart]];
    });

    arr.unshift(["DateTime", desc]);
    var data = google.visualization.arrayToDataTable(arr)

    var options = {
        title: desc + " for " + obj[0].computerName,
        curveType: 'function',
        legend: { position: 'bottom' },
        animation: {
            startup: false,
            duration: 500
        },
        vAxis: {
            baseline: baselineVal,
            baselineColor: 'red'
        }
    };

    var chart = new 
    google.visualization.LineChart(document.getElementById(element));
    chart.draw(data, options);
}

来电者:

google.charts.setOnLoadCallback(ProcessChart(obj, "averageJitterInMs", "Average Jitter (ms)", "line-jitter-8hr", 10))
google.charts.setOnLoadCallback(ProcessChart(obj, "roundTripLatencyInMs", 'Round-Trip Latency (ms)', 'line-delay-8-hr', 8))

问题是我的 valToChart 被传递时出现错误:

Unexpected token }

是否有另一种方法可以将其表达为我的 obj 对象的动态属性?我在每个地方都使用“硬编码”值测试了这段代码,它工作正常。

最佳答案

不需要解构(无论如何都行不通)

let arr = obj.map(e => [new Date(e.dateTime), +e[valToChart]]);

做自己想做的事

关于javascript - 将字符串传递给 "let"中的对象属性会得到 "Unexpected token }",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52808794/

相关文章:

javascript - jQuery Cycle 插件 : centering background images when browser is resized

javascript - Gulp Browsersync 任务不会重新加载新文件结构的文件更改

javascript - 如何使用 JQUERY 为多个 DIVS 内的按钮编写 CLICK 函数

javascript - JS菜单滑动(总是跳转到页面顶部)

javascript - 在 Highcharts 中平移将不允许回到 xAxis 的最大值

javascript - 在 iOS 上隐藏 URL 栏而不隐藏 Smart App Banner

javascript - 异步/等待函数

javascript - 类型错误 .join 不是函数 Netlify 构建错误

javascript - 操作对象数组时 For 循环未按预期工作

javascript - 将原型(prototype)B的所有方法和属性赋值给原型(prototype)A?