永洪tech-zyc
2021-4-25 15:24:33
发布在社区公告
如何解决列表参数组件length方法获取长度不一致问题
不知道大家在使用列表参数组件时有没有遇到单选或者多选时 利用length方法判断的长度存在问题。
如下图所示:
当列表参数勾选一个时,输出length竟然为4 而不是 1!!!
多选时输出的length长度就是正常的。
这是什么原因呢?原来这是有js语法特性导致的。
javascript是弱类型,所以会根据值确定变量的类型,无法固定为数组。
当单选时,列表参数值是字符串,因此他输出的length就是字符串的长度,而多选时他是数组,数组的length就是正确的勾选值个数。
这时我们可以通过自定义一个方法,人为的规避这个问题,在方法中提前判断值的类型是数组还是字符串。如下示例:
function plen(pm) {
if(pm == null) {
return 0;
}
if(pm instanceof Array) {
return pm.length;
}
return 1;
}
测试效果如下:
单选多选均可正常
|
免责声明:本文不代表本站立场,且不构成任何建议,请谨慎对待。
版权声明:作者保留权利,不代表本站立场。