如何解决列表参数组件length方法获取长度不一致问题

永洪tech-zyc铂金四 显示全部楼层 发表于 2021-4-25 15:24:33 |阅读模式 打印 上一主题 下一主题
不知道大家在使用列表参数组件时有没有遇到单选或者多选时 利用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
单选多选均可正常




回复

使用道具 举报

精彩评论6

雨淋的猫白银四 显示全部楼层 发表于 2022-9-1 09:55:26
1
回复

使用道具 举报

yhdata_i7P1MLIv皇冠一 显示全部楼层 发表于 2023-8-2 14:07:09
回复

使用道具 举报

烽火连三月铂金三 显示全部楼层 发表于 2023-8-4 11:15:22
收到,多谢分享!
回复 支持 反对

使用道具 举报

烽火连三月铂金三 显示全部楼层 发表于 2023-8-4 11:15:25
收到,多谢分享!
回复 支持 反对

使用道具 举报

火将军皇冠三 显示全部楼层 发表于 2024-2-8 19:13:12
666
回复

使用道具 举报

火将军皇冠三 显示全部楼层 发表于 2024-2-11 12:29:46
新年快乐
回复

使用道具 举报

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

  • 官方微信

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

    扫码关注
  • 新浪微博

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

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

会员等你来哦

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