永洪tech-zyc铂金四
2021-4-25 15:24:33 发布在社区公告
如何解决列表参数组件length方法获取长度不一致问题
不知道大家在使用列表参数组件时有没有遇到单选或者多选时 利用length方法判断的长度存在问题。

如下图所示:
1.png

当列表参数勾选一个时,输出length竟然为4 而不是 1!!!
多选时输出的length长度就是正常的。
2.png

这是什么原因呢?原来这是有js语法特性导致的。
javascript是弱类型,所以会根据值确定变量的类型,无法固定为数组。


当单选时,列表参数值是字符串,因此他输出的length就是字符串的长度,而多选时他是数组,数组的length就是正确的勾选值个数。


这时我们可以通过自定义一个方法,人为的规避这个问题,在方法中提前判断值的类型是数组还是字符串。如下示例:
function plen(pm) {
if(pm == null) {
return 0;
}
if(pm instanceof Array) {
return pm.length;
}

return 1;
}


测试效果如下:
3.png 4.png
单选多选均可正常




4442
6
2
精彩评论6
雨淋的猫白银四
发表于 2022-9-1 09:55:26 显示全部楼层
1
回复

使用道具 2#

yhdata_i7P1MLIv青铜二
发表于 2023-8-2 14:07:09 显示全部楼层
回复

使用道具 3#

烽火连三月青铜四
发表于 2023-8-4 11:15:22 显示全部楼层
收到,多谢分享!
回复

使用道具 4#

烽火连三月青铜四
发表于 2023-8-4 11:15:25 显示全部楼层
收到,多谢分享!
回复

使用道具 5#

紫定盈铂金二
发表于 2024-2-8 19:13:12 显示全部楼层
666
回复

使用道具 6#

紫定盈铂金二
发表于 2024-2-11 12:29:46 显示全部楼层
新年快乐
回复

使用道具 7#

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
100W

用户等你来哦

Copyright   ©2012-2025  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部