javascript - 如何循环浏览 highcharts 主题

标签 javascript jquery highcharts

我想循环一个 highchart 的主题:

Highcharts.theme = {
    yAxis: {
        opposite: true,
        lineWidth: 0, // Linie ganz rechts      
    },
    navigation: {
        buttonOptions: {
            align: 'left'
        }
    },   
    rangeSelector: {
        selected: 1
    }
};

因此,我需要键/值对:

  • yAxis.opposite/true
  • yAxis.lineWidth/0
  • navigation.buttonOptions.align/向左
  • rangeSelector.selected/1

任何人都可以帮助以最好的方式做到这一点吗?

最佳答案

您可以使用 for 循环遍历 JavaScript 对象。像这样的事情会遍历主题(深度为三层)并将键/值放入数组中:

var myVals = [];
for (var key in Highcharts.theme) {   
  if (Highcharts.theme.hasOwnProperty(key)) {
     var obj = Highcharts.theme[key];
     for (var prop in obj) {
        if (obj.hasOwnProperty(prop)) {
          if (typeof obj[prop] === 'object') {
             for (var prop2 in obj[prop]) {
               var myKey = key + "." + prop + "." + prop2;
               myVals[myKey] = obj[prop][prop2];
             }
          } else {
            var myKey = key + "." + prop;
            myVals[myKey] = obj[prop];
          }
        }
     }
  }
}
console.log(myVals);

如果您有更深层次的嵌套值,那么您最好使用递归函数重写它。

关于javascript - 如何循环浏览 highcharts 主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24180761/

相关文章:

javascript - 如何跟踪 jQuery 对话框调用的操作?

javascript - 如何使用 Fuel UX Pillbox 作为 HTML 表单中的元素?

javascript - highcharts:如何正确地将 float 显示为 xAxis 中的日期时间

javascript - 如何将 JSON 动态插入到 Accordion 菜单中?

Javascript 复杂类

javascript - Angular $watch 命令选择 undefined variable

Jquery 日期选择器格式问题

javascript - 文本选择在alert()中可见,但在html()中不可见

javascript - Highcharts 中含有大量点的列太宽

javascript - Highcharts 在 Safari 和 Chrome 中的格式不同