scripting - 在速度报告脚本中,如何查找用户名是否已经存在?
问题描述
在 for 循环中,变量 $dispNames 使用用户的名字和姓氏进行更新。
set( $dispNames = $dispNames + $user.firstName + " " + $user.lastName + ", ")
如何检查该用户是否已存在于字符串中并忽略添加到此变量?
解决方案
这里的好做法是确保您正在迭代的 Java 集合中没有重复项,或者通过将这些名称放在 Java 端的 Set 中来删除重复项。
但是,如果您的环境中无法访问此解决方案,您可以尝试:
#set ($seenUsers = {})
#foreach ($user in $myUsersCollection)
#set ($fullName = "$user.firstName $user.lastName")
#if (!$seenUsers.containsKey($fullName))
#set ($junk = $seenUsers.put($fullName, 1))
#if ($dispNames.length() > 0)
#set ($dispNames = "$dispNames,")
#end
#set ($dispNames = "$dispNames, $fullName")
#end
#end
此解决方案使用地图来记住特定用户是否已被查看。此外,它避免在姓氏后添加逗号。
您还会注意到,在 Velocity 中连接字符串的正确方法是使用现有引用格式化更大的字符串,而不是使用专用于数字加法的 + 运算符。
推荐阅读
- python - Pandas 用正则表达式分成列
- android - Android 通知单击保持堆栈并在需要时将应用程序置于最前面。如果特定活动在顶部,则传递数据
- linux - 构建 Xerces-C 时缺少 Plo 文件
- testing - UnhandledPromiseRejectionWarning:错误:协议错误(Runtime.callFunctionOn):已收集承诺
- flutter - 无效参数:在 URI 文件中未指定主机:///p1
- python - Python:从 web 的 zipfile 中提取文件,无需先下载并保存
- reactjs - how to get the data where id is equal to the id of other json data?
- html - 如何在 Kendo Multiselect 组件中从上显示/打开下拉列表以获取角度
- powershell - Powershell password expiration date filtering
- excel - 在 Win 10 中安装没有管理员权限的应用程序