亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

Echarts.option中notMerge配置解析

2023-09-26 05:38:55
431
0

Q:修改option中的series的值時,當異步回來的數據層級較深時,需要調取Echarts的repaint,否則圖像不會刷新

legend的數據跟隨數據的增刪實時刷新,但曲線會取merge后的數據做展示

A:調用setOption的第二個參數(notMerge)

myChart.setOption(option, true)

選擇notMerge為true,即為不合并之前的數據

 

其中涉及Echarts底層mergeOption方法的原理,如下:

function mergeOption(oldOption, newOption, notMerge) {
  if (notMerge) {
    // 如果notMerge為true,則直接返回新的配置項
    return newOption;
  }
  // 創建一個新的配置項對象,避免直接修改原始配置項
  var mergedOption = {};
  // 遍歷舊配置項,將其復制到新的配置項中
  for (var key in oldOption) {
    if (oldOption.hasOwnProperty(key)) {
      mergedOption[key] = oldOption[key];
    }
  }
  // 遍歷新配置項,將其合并到新的配置項中
  for (var key in newOption) {
    if (newOption.hasOwnProperty(key)) {
      // 如果舊配置項中存在相同的屬性,則進行合并處理
      if (mergedOption.hasOwnProperty(key)) {
        // 對某些特殊屬性進行深度合并
        if (key === 'series') {
          mergedOption[key] = mergeSeries(mergedOption[key], newOption[key]);
        } else {
          mergedOption[key] = newOption[key];
        }
      } else {
        // 如果舊配置項中不存在該屬性,則直接復制到新的配置項中
        mergedOption[key] = newOption[key];
      }
    }
  }
  return mergedOption;
}

// 對系列(series)進行合并的輔助方法
function mergeSeries(oldSeries, newSeries) {
  var mergedSeries = [];

  // 遍歷舊系列,將其復制到新的系列中
  for (var i = 0; i < oldSeries.length; i++) {
    mergedSeries.push(oldSeries[i]);
  }
  // 遍歷新系列,將其合并到新的系列中
  for (var i = 0; i < newSeries.length; i++) {
    // TODO: 進行新舊系列的合并處理,可根據具體需求實現
    mergedSeries.push(newSeries[i]);
  }
  return mergedSeries;
}

E:setOption參數列表

0條評論
0 / 1000
w****n
17文章數
1粉絲數
w****n
17 文章 | 1 粉絲
原創

Echarts.option中notMerge配置解析

2023-09-26 05:38:55
431
0

Q:修改option中的series的值時,當異步回來的數據層級較深時,需要調取Echarts的repaint,否則圖像不會刷新

legend的數據跟隨數據的增刪實時刷新,但曲線會取merge后的數據做展示

A:調用setOption的第二個參數(notMerge)

myChart.setOption(option, true)

選擇notMerge為true,即為不合并之前的數據

 

其中涉及Echarts底層mergeOption方法的原理,如下:

function mergeOption(oldOption, newOption, notMerge) {
  if (notMerge) {
    // 如果notMerge為true,則直接返回新的配置項
    return newOption;
  }
  // 創建一個新的配置項對象,避免直接修改原始配置項
  var mergedOption = {};
  // 遍歷舊配置項,將其復制到新的配置項中
  for (var key in oldOption) {
    if (oldOption.hasOwnProperty(key)) {
      mergedOption[key] = oldOption[key];
    }
  }
  // 遍歷新配置項,將其合并到新的配置項中
  for (var key in newOption) {
    if (newOption.hasOwnProperty(key)) {
      // 如果舊配置項中存在相同的屬性,則進行合并處理
      if (mergedOption.hasOwnProperty(key)) {
        // 對某些特殊屬性進行深度合并
        if (key === 'series') {
          mergedOption[key] = mergeSeries(mergedOption[key], newOption[key]);
        } else {
          mergedOption[key] = newOption[key];
        }
      } else {
        // 如果舊配置項中不存在該屬性,則直接復制到新的配置項中
        mergedOption[key] = newOption[key];
      }
    }
  }
  return mergedOption;
}

// 對系列(series)進行合并的輔助方法
function mergeSeries(oldSeries, newSeries) {
  var mergedSeries = [];

  // 遍歷舊系列,將其復制到新的系列中
  for (var i = 0; i < oldSeries.length; i++) {
    mergedSeries.push(oldSeries[i]);
  }
  // 遍歷新系列,將其合并到新的系列中
  for (var i = 0; i < newSeries.length; i++) {
    // TODO: 進行新舊系列的合并處理,可根據具體需求實現
    mergedSeries.push(newSeries[i]);
  }
  return mergedSeries;
}

E:setOption參數列表

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0