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