动态赋值JavaScript字典适配ECharts时结构异常求助
解决动态生成ECharts适配对象的结构问题
问题核心是你把stacks需要的对象结构错误地生成了数组结构。静态示例里stacks是一个包含多个键值对的对象,而你的动态代码中datastck是数组,每个元素是仅含单个键的小对象,最终导致stacks变成数组,无法被ECharts识别。
修改方案
把datastck从数组改为普通对象,遍历过程中直接给这个对象添加属性,而不是创建小对象推入数组:
// 把数组改成空对象 var datastck = {}; var serverdata = '{{ barCdata | tojson }}'; resPbar = $.parseJSON(serverdata); $.each(resPbar, function (i, item) { // 直接给datastck添加键值对,无需创建临时对象再push datastck[item.Team] = [{"Open": item.Open},{"Close": item.Close}]; }); response = { "stacks": datastck };
改动说明
- 原代码中
datastck是数组,每次循环生成{Team: [...]}的小对象并push,最终得到[{5G_L2: ...}, {5G_L3: ...}]的数组结构; - 修改后
datastck是对象,循环时直接为其添加item.Team作为键,对应值为目标数组,最终得到和静态示例完全一致的{5G_L2: [...], 5G_L3: [...]}结构,完美适配ECharts要求。
内容的提问来源于stack exchange,提问作者tinks
相关产品推荐
相关产品推荐

