2020-11-04 02:42:23
在 ECharts 地图中,鼠标移入显示数据出现 NaN 值的问题通常由数据格式错误或空值导致。以下是具体原因和解决方案:
问题原因在初始化图表时,通过 filter 方法过滤掉无效数据(undefined、null、NaN),确保只有有效数值被渲染。
function initMap(dataObj) { const mapChart = echarts.init(document.getElementById('map-chart')); const option = { series: [{ name: '业务操作统计', type: 'map', data: dataObj.filter(item => item.value !== undefined && item.value !== null && !isNaN(item.value) // 过滤非数值 ) }] }; mapChart.setOption(option);}2. 数据默认值处理为缺失或无效的数据设置默认值(如 0),避免 NaN 显示。
function initMap(dataObj) { const processedData = dataObj.map(item => { if (item.value === undefined || item.value === null || isNaN(item.value)) { return { ...item, value: 0 }; // 默认值设为0 } return item; }); const mapChart = echarts.init(document.getElementById('map-chart')); const option = { series: [{ type: 'map', data: processedData }] }; mapChart.setOption(option);}3. 数据格式校验在赋值前检查数据格式,确保每个数据项包含正确的 name 和 value 字段。
function isValidData(item) { return item && typeof item.name === 'string' && typeof item.value === 'number';}function initMap(dataObj) { const validData = dataObj.filter(isValidData); // 或使用默认值 const safeData = dataObj.map(item => ({ ...item, value: isValidData(item) ? item.value : 0 })); // 后续初始化代码...}4. 调试与日志在开发阶段,通过 console.log 打印数据,检查是否存在异常值。
console.log('原始数据:', dataObj);console.log('过滤后数据:', dataObj.filter(item => !isNaN(item.value)));关键点总结通过以上方法,可有效解决 ECharts 地图鼠标移入时显示 NaN 的问题,提升数据可视化稳定性。