找回密码
 立即注册

QQ登录

只需一步,快速开始

Jobcrazy

初级会员

29

主题

96

帖子

387

积分

初级会员

积分
387
Jobcrazy
初级会员   /  发表于:2018-2-28 13:20  /   查看:8522  /  回复:12
本帖最后由 Jobcrazy 于 2018-2-28 13:36 编辑

image.png861445922.png image.png330553588.png

如图:obj是sheet对象,在使用上述save_array数组之后,源码中发现如下图:
image.png801202392.png
image.png396265563.png
数组 instanceof Array是false,我传进去的数组不是array的实例,为什么会这样?但是使用控件中的getArray方法获取的数组是array的实例,上述save_array是我测试问题时特意手写的构建的数据。
这个问题导致我们构建的数据不能分配到对应的单元格中,而是直接将数组放到了单元格里,显示出来的数据就成了如下图的结果:
image.png750626830.png
我们使用的版本是10.2.0

12 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-2-28 15:24:19
沙发
您好:

您试一下在浏览器的控制台中输入[[1,2,3,4],[5,6,7,8]] instanceof Array 看一下结果是True 还是False 如果也是False(我这边测试结果是True),那说明跟产品本身没有关系了,考虑是否重写过Array对象或者是浏览器本身内核的问题。
回复 使用道具 举报
Jobcrazy
初级会员   /  发表于:2018-2-28 15:33:56
板凳
本帖最后由 Jobcrazy 于 2018-2-28 15:38 编辑

测试的结果是true,下图是在执行到源码中如图断点时在控制台输入的测试内容,其结果是不一样的
image.png397292785.png
image.png706879272.png
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-2-28 15:54:28
地板
您好,我们这边按照您给的代码用10.2.0进行测试,并没有发现问题,测试截图如下:
image.png538233642.png

代码:
var savearray = [[1,2,3,4],[5,6,7,8]];
sheet.setArray(3,3,savearray);

您可以新建一个全新的工程,这样试一下看有没有问题。
回复 使用道具 举报
Jobcrazy
初级会员   /  发表于:2018-2-28 16:13:41
5#
该bug确实存在,2017年1月4号有位朋友也提过这个问题,也是不了了之,我也不知道是怎么出现的这个问题,葡萄城线上的案例测试我也测过,确实是没问题的,那么问题是出在哪里呢?怎么解决呢?是怎么产生的这样的问题我也不清楚,我相信您通过我的截图也能感觉到,这个问题确实存在,只是不知道如何重现,很明显,简单的demo重现不了它。
回复 使用道具 举报
Jobcrazy
初级会员   /  发表于:2018-2-28 16:19:10
6#
修改源码的数组判断方法肯定是可以解决,但是后续更新版本又会很麻烦,找不到问题的原因的话你们可否修改一下这里的数组判定方法,用数组的实例来判断是不是数组不够准确。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-2-28 17:37:06
7#
您说的1月4日也有过这个问题,有帖子的链接地址吗?我上去看一下。
回复 使用道具 举报
Jobcrazy
初级会员   /  发表于:2018-2-28 17:48:28
8#
地址:http://gcdn.gcpowertools.com.cn/ ... ;highlight=setArray
我也是这个问题,然后自己写一个数组测试,发现问题依旧,他这里手写数组测试说是ok的,应该是做小demo测试是ok的,跟我的情况一样。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-2-28 18:16:36
9#
您试一下d.constructor返回的是什么,我猜想可能是因为JS语言是弱类型导致的
回复 使用道具 举报
Jobcrazy
初级会员   /  发表于:2018-3-1 09:17:25
10#
不是弱类型导致的,这个数组是我直接写的数组测试的,就是save_array = [[1,2,3,4],[5,6,7,8]]; 中的第一个元素,一样铁定是数组。constructor如截图:
image.png955889892.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部