let arr =`山东省/济南市/历下区 山东省/济南市/章丘区` 转为树结构
时间: 2023-08-01 19:08:54 浏览: 48
你可以使用以下代码将给定的字符串数组转换为树结构:
```javascript
function convertToTree(arr) {
const tree = {};
arr.forEach(item => {
const nodes = item.split('/');
let currentNode = tree;
nodes.forEach(node => {
if (!currentNode[node]) {
currentNode[node] = {};
}
currentNode = currentNode[node];
});
});
return tree;
}
const arr = `山东省/济南市/历下区
山东省/济南市/章丘区`.split('\n');
const tree = convertToTree(arr);
console.log(tree);
```
运行以上代码,你会得到以下输出:
```
{
"山东省": {
"济南市": {
"历下区": {},
"章丘区": {}
}
}
}
```
这样,你就将给定的字符串数组转换为了树结构。每个节点都是一个对象,它的属性是下一级节点的名称。
相关问题
let arr =山东省/济南市/历下区 山东省/济南市/章丘区 转为键值对的树结构
要将给定的字符串数组转换为键值对的树结构,你可以使用以下代码:
```javascript
function convertToTree(arr) {
const tree = {};
arr.forEach((item, index) => {
const nodes = item.split('/');
let currentNode = tree;
nodes.forEach(node => {
if (!currentNode[node]) {
currentNode[node] = {};
}
currentNode = currentNode[node];
});
// 为当前节点添加键值对
currentNode.key = index + 1;
currentNode.value = item;
});
return tree;
}
const arr = `山东省/济南市/历下区
山东省/济南市/章丘区`.split('\n');
const tree = convertToTree(arr);
console.log(tree);
```
运行以上代码,你会得到以下输出:
```json
{
"山东省": {
"济南市": {
"历下区": {
"key": 1,
"value": "山东省/济南市/历下区"
},
"章丘区": {
"key": 2,
"value": "山东省/济南市/章丘区"
}
}
}
}
```
每个节点都带有名为 "key" 和 "value" 的属性。"key" 属性的值是该节点在数组中的索引加 1,"value" 属性的值是对应的字符串。这样,你就得到了键值对的树结构。
let arr =山东省/济南市/历下区 山东省/济南市/章丘区 转为带key的树结构
要将给定的字符串数组转换为带有键值的树结构,你可以使用以下代码:
```javascript
function convertToTree(arr) {
const tree = {};
arr.forEach((item, index) => {
const nodes = item.split('/');
let currentNode = tree;
nodes.forEach(node => {
if (!currentNode[node]) {
currentNode[node] = {};
}
currentNode = currentNode[node];
});
// 为当前节点添加键值
currentNode.key = index + 1;
});
return tree;
}
const arr = `山东省/济南市/历下区
山东省/济南市/章丘区`.split('\n');
const tree = convertToTree(arr);
console.log(tree);
```
运行以上代码,你会得到以下输出:
```json
{
"山东省": {
"济南市": {
"历下区": {
"key": 1
},
"章丘区": {
"key": 2
}
}
}
}
```
每个节点都带有一个名为 "key" 的属性,其值为该节点在数组中的索引加 1。这样,你就得到了带有键值的树结构。