coldfusion - 需要创建一个带有分隔符的字符串数组的树状结构
问题描述
我需要转换一个字符串数组,这是一个由“/”分隔的列表。
基本上我需要这个:
[
"label1/label12/label13/label14",
"label1/label12/label15",
"label1/label12/label16",
"label7/label72/label73"
]
得到这样的:
{
"label1": {
"label12": {
"label13": "label14",
"label15",
"label16"
}
},
"label7": {
"label72": "label73"
}
}
这有可能吗?
编辑:在Drew给出了我的问题的解决方案之后,正如我所写的那样,我现在需要一种方法来使用像“+++ In work +++”这样的键来完成它
Edit2:第二种解决方案效果更好。感谢你们!
解决方案
<cfset arrLabels = [
"label1/label12/label13/label14",
"label1/label12/label15",
"label1/label12/label16",
"label7/label72/label73"
]>
<cffunction name="labelConversion" returntype="struct">
<cfargument name="arrLabels" type="array">
<cfset var structLabels = {} />
<cfloop from="1" to="#ArrayLen(arguments.arrLabels)#" index="i">
<cfset StructGet("structLabels."&replace(arguments.arrLabels[i],'/','.', 'all'))>
</cfloop>
<cfreturn structLabels />
</cffunction>
<cfdump var="#labelConversion(arrLabels)#">
<cfabort>
推荐阅读
- java - 用于链表拆分问题的合并排序的 Java 实现
- angular - 捕获输入值并在使用角度材料输入的按钮单击时显示值
- swift - 如何使用 DJI Mobile SDK 从 mavic pro 重新获取视频?
- javascript - 如何在不使用全局范围或 redux 的情况下在 react-native 中使用全局变量?
- c++ - 禁止“使用‘X’属性是 C++17 扩展”警告
- javascript - 如何移动此图像的位置?
- vbscript - 未在 For 循环中设置对象变量
- rest - 类似于 REST 但也使用像 GraphQL 这样的突变的 API?
- graphql - 检查自定义客户端解析器中的查询类型或突变字段
- r - 根据分类运行进行总结