有如下数据
[
{
"addData": "item1.child1"
},
{
"addData": "item1.child2"
},
{
"addData": "item1.child3"
},
{
"addData": "item2"
},
{
"addData": "item3"
},
{
"addData": "item4.child1"
},
{
"addData": "item4.child2.key1"
},
{
"addData": "item4.child2.key2"
},
{
"addData": "item4.child3"
}
]
需转为下面的格式
[
{
"value": "item1",
"label": "item1",
"children": [
{
"value": "child1",
"label": "child1"
},
{
"value": "child2",
"label": "child2"
},
{
"value": "child3",
"label": "child3"
}
]
},
{
"value": "item2",
"label": "item2"
},
{
"value": "item3",
"label": "item3"
},
{
"value": "item4",
"label": "item4",
"children": [
{
"value": "child1",
"label": "child1"
},
{
"value": "child2",
"label": "child2",
"children": [
{
"value": "key1",
"label": "key1"
},
{
"value": "key2",
"label": "key2"
}
]
},
{
"value": "child3",
"label": "child3"
}
]
}
]
大概就是' .
'分割的字符串重新组成 value label 树形结构,.
字符串分割数目不固定,求大佬解惑
使用递归就行了, 常见算法:
console.log(convertData([
{
"addData": "item1.child1"
},
{
"addData": "item1.child2"
},
{
"addData": "item1.child3"
},
{
"addData": "item2"
},
{
"addData": "item3"
},
{
"addData": "item4.child1"
},
{
"addData": "item4.child2.key1"
},
{
"addData": "item4.child2.key2"
},
{
"addData": "item4.child3"
}
]))
function convertData (originalData) {
const result = [];
for (let item of originalData) {
const parts = item.addData.split('.');
let parent = result;
// 遍历该项数据的所有部分
for (let part of parts) {
// 在当前父级节点的子节点中查找该部分
let current = parent.find(node => node.value === part);
if (!current) {
// 如果该部分不存在,则创建新的节点,并将其添加到当前父级节点的子节点中
current = {
value: part,
label: part
};
parent.push(current);
}
// 更新父级节点引用为当前节点,继续处理下一个部分
parent = current.children || (current.children = []);
}
}
return result;
}
我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字
问题内容: 我正在通过这样的套接字接收字符串 我想将其转换回数组。我尝试使用 但是它将数组内的数组分割开。 我将如何将字符串转换为数组? 问题答案: 使用比。从文档: 31.2。ast —抽象语法树¶ 安全地评估表达式节点或包含Python表达式的字符串。提供的字符串或节点只能由以下Python文字结构组成:字符串,数字,元组,列表,字典,布尔值和无。 这可用于安全地评估包含来自不受信任来源的Py
问题内容: 我想要这种格式 问题答案: 您需要先 解析 日期字符串(使用方法),才能 使用与格式匹配的格式获取对象。 然后使用所需的格式来 格式化 Date对象(Use 方法)以获取字符串。 输出:- 第一种格式是RFC 822 TimeZone与您的日期字符串匹配。有关在日期格式中使用的其他各种选项,请参见。
问题内容: MySQL是否会自动将字符串转换为数字值? 转换如何进行? ‘1234’= 1234吗? ‘1abc’= 1? ‘文本’= 1? 给定那是bigint类型的,该查询将如何解释? 问题答案: 前三个问题的答案是:是,是和否。 当字符串转换为数字时,它将成为value 。 描述类型转换的文档在这里。 对于您的查询: 该摘录摘自文档: 在所有其他情况下,将参数作为浮点数(实数)进行比较。 换
我有一个pandas数据框架,其中混合了数据类型(DType),我希望将其转换为numpy结构化数组(或记录数组,在本例中基本相同)。对于纯数字数据帧,使用方法很容易做到这一点。我还需要将pandas列的数据类型转换为字符串而不是对象,以便使用numpy方法,该方法将数字和字符串输出到二进制文件,但不会输出对象。 简而言之,我需要将带有的panda列转换为字符串或unicode数据类型的numpy
我有一个购物车php页面,在那里我显示客户端产品。在同一页中,我有一个表单,可以将客户的个人详细信息(如姓名、姓氏等)以及产品信息(如产品名称、数量等)直接发送到我的电子邮件地址。 现在,问题是,当我发送表单时,在我的电子邮件地址上,我收到了所有的信息,但没有产品细节,例如在订单电子邮件中的产品名称字段,我有ARRAY。 我看到将数组转换为字符串时出现问题,但我不知道如何转换,我尝试了几个示例,但