Javascript 使用变量值作为名称引用

标签 javascript

我一直在网上搜索并尝试了一些对我来说不起作用的修复程序,所以想知道是否有人可以帮助我解决这个问题。

基本上我已经附加了一些代码,它显示了一个接收区域的函数(区域是一个数字/只有 3 个区域 1、2、3)。然后,我有 3 个数据集,分别为 data1、data2、data3,我想使用传递的区域编号来引用它们。但我需要将 data1、data2 和 data3 全部保留为单独的数组,然后将它们插入到图表(chartjs)中。

当用户按下开关时会调用该函数,每个区域有 3 个按钮,使该数据集能够显示在图表上,然后在关闭时会删除该区域数据集。

任何帮助都会很棒, 基兰

    var data1 = [];
    var data2 = [];
    var data3 = [];

    // Adds/removes data sets from the chart
    function redrawChart(zone){
        var dataSet = "data"+zone;
        dataSet.push(7,8,8,9,10);

        historyChart = new Chart(document.getElementById('ns-popout-graph').getContext("2d")).Line(newData);
    }

最佳答案

在这种情况下,你实际上没有太多选择。最干净的一种是使用对象来保存数组,然后构造动态键很容易:

var datas = {
    data1: [],
    data2: [],
    data3: []
};

// Adds/removes data sets from the chart
function redrawChart(zone) {

    var dataSet = datas["data" + zone];
    dataSet.push(7,8,8,9,10);

    // ...
}

另一种方法可能是eval,但这不是解决此问题的推荐方法。请注意,如果数据变量是在全局命名空间 (window) 中定义的,您仍然可以使用 window['data' + zone] 但我希望您不要污染全局范围, 你? :)

关于Javascript 使用变量值作为名称引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33861034/

相关文章:

javascript - 传递值以仅打印、pdf 预览或在 excel 中打开

javascript - GSAP 动画无法插入 CSS3 转换

javascript - Javascript 功能支持的综合跨浏览器列表

javascript - javascript 对象的值不变(通过引用传递)

javascript - Wrapall 适用于数字但不适用于变量

javascript - 在不旋转 Canvas 的情况下以一定 Angular 在 Canvas 中绘制图像

javascript - 限制 jQuery select2 最大选择选项

javascript - NodeJs 在执行测试用例时用 Jest 错误表达 MongoDB

javascript - 更改部分属性

javascript - 使用 RXJS 进行数组/哈希操作