"valueType": [ { "value": "value", "label": "直接赋值", "children": [] }, { "label": "时间转换", "children": [ { "value": "timestamp", "label": "13位时间戳" }, { "value": "timestamp", "label": "10位时间戳" }, { "value": "timestring1", "label": "yyyy-MM-dd'T'HH:mm:ss*SSSZZZZ" }, { "value": "timestring2", "label": "yyyy MMM dd HH:mm:ss.SSS zzz" }, { "value": "timestring3", "label": "MMM dd HH:mm:ss ZZZZ yyyy" }, { "value": "timestring4", "label": "dd/MMM/yyyy:HH:mm:ss ZZZZ" }, { "value": "timestring5", "label": "MMM dd, yyyy hh:mm:ss a" }, { "value": "timestring6", "label": "MMM dd yyyy HH:mm:ss" }, { "value": "timestring6", "label": "yyyymmddhhMMss" } ], "value": "time" }, { "label": "IP转换", "children": [ { "value": "ipstring", "label": "string" }, { "value": "iplong", "label": "long" } ], "value": "ip" }, { "value": "base64", "label": "Base64解码", "children": [] }, { "value": "hex", "label": "HEX解码", "children": [] }, { "value": "lowercase", "label": "小写转换", "children": [] }, { "value": "mac", "label": "MAC转换", "children": [] }, { "value": "dic", "label": "数据字典", "children": [] } ]javaScript点击children里的某一项,怎么获取它的父节点是哪个,删除这个子节点,并更新整个valueType数组数据
时间: 2023-07-24 08:14:02 浏览: 40
您可以使用JavaScript来获取并删除子节点,并更新整个 `valueType` 数组的数据。以下是一个示例代码:
```javascript
function deleteChildNodeAndRebuild(data, childValue) {
for (let i = 0; i < data.length; i++) {
const parentNode = data[i];
if (parentNode.children && parentNode.children.length > 0) {
const children = parentNode.children;
for (let j = 0; j < children.length; j++) {
const childNode = children[j];
if (childNode.value === childValue) {
children.splice(j, 1); // 删除子节点
return data;
}
}
}
}
return data;
}
const data = [
{
value: "value",
label: "直接赋值",
children: []
},
{
label: "时间转换",
children: [
{
value: "timestamp",
label: "13位时间戳"
},
// ...
],
value: "time"
},
// ...
];
const childValue = "timestamp";
const newData = deleteChildNodeAndRebuild(data, childValue);
console.log(newData);
```
在上面的示例中,`data` 是包含整个数据结构的数组,`childValue` 是要删除的子节点的值。函数 `deleteChildNodeAndRebuild` 遍历每个父节点及其子节点,如果找到匹配的子节点,则删除该子节点,并返回更新后的数据。如果没有找到匹配的子节点,则返回原始数据。
请注意,上述代码在原始数据上进行了修改,如果需要保留原始数据不变,可以使用 `slice()` 方法复制一份数据进行操作。