亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在數組中使用數組時替代已棄用的 Highcharts.each

在數組中使用數組時替代已棄用的 Highcharts.each

忽然笑 2022-10-21 10:21:21
我正在使用一個簡單的 Highcharts 柱形圖來顯示一組數據。懸停在 Highcharts 外部的數組用于為每列生成工具提示。一年中的每個月都有一列。在工具提示 pointFormatter 中使用“Highcharts.each”功能時,一切都很好。每個月列顯示該特定月份的正確股票代碼:例如,將鼠標懸停在“一月”圖表列上時,工具提示在頂行顯示“一月”,在下一行顯示“CMA、OMC、DIS、JPM”在工具提示中。注意:此時,一年中的最后 6 個月仍然是未來,這就是為什么 'tooltip_ticks' 數組中的最后 6 個元素具有空值的原因。var tooltip_ticks = [["CMA","OMC","DIS","JPM"],["TXN","ABBV","SPG"],["ENB","TJX","TGT","MMM","MSFT","VBR","ED","HD","AVGO","VTV"],["CMA","OMC","FXAIX","JPM"],["CVS","ABBV","TXN"],["ENB","WFC","PFE","TGT","MSFT","MMM","ED","HD"],"","","","","",""]...        tooltip: {            useHTML: true,            pointFormatter: function() {                var string = '';                Highcharts.each(tooltip_ticks[this.series.data.indexOf(this)], function(tick) {                     string += tick + ', '                });                return string;            }        }Highcharts.each 函數已被棄用。我花了將近 2 個小時和多次代碼迭代試圖弄清楚如何使用 js Array.forEach 函數復制上面的代碼。一個例子:            pointFormatter: function() {                var string = '';                tooltip_ticks.forEach(function(tick) {                      string += tick + ', '                });                return string;            }這會為每個月創建一個工具提示,但每個月的工具提示都包含“tooltip_ticks”數組中的所有元素。我不知道如何獲得正確的每月子數組索引,以便在每個工具提示中只顯示單個月份的代碼。換句話說,相當于這個tooltip_ticks[this.series.data.indexOf(this)]我是否需要在 forEach 函數中執行某種“For”循環,因為子數組需要循環并且子數組元素一個一個地提???我會使用 js 和/或 Highcharts 圖表庫將我的經驗水平歸類為“初學者”,因此不完全是新手,但仍處于早期學習模式。任何幫助/建議將不勝感激。
查看完整描述

1 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

好吧,在發布了這個問題并在第二天重新閱讀之后,我能夠從一個新的角度看待它,并針對與我的情況相關的已棄用的 Highcharts.each 函數提出了以下解決方案。關鍵是使用 this.series.data.indexOf(this) 參數和 array.forEach 函數。順便說一句,我還添加了一個簡短的條件來處理因循環遍歷每個數據點的最后一個子數組元素而產生的尾隨逗號


                tooltip: {

                  useHTML: true,

                  headerFormat: '<b>{point.x}</b><br/>',

                  pointFormatter: function() {

                    var string = '';

                    var i = this.series.data.indexOf(this);

                    var ticks = tooltip_ticks[i];


                    ticks.forEach(function(tick, index) {

                          if (index != ticks.length - 1) {

                            string += tick + ', ';

                          } else {

                            string += tick;

                          }

                    });

                    return string;

                    

                  }

                }

http://img1.sycdn.imooc.com//6352023d000129a603990275.jpg

查看完整回答
反對 回復 2022-10-21
  • 1 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號