,该数组是一维数组,第一层节点是parent:# 第二层根据第一层id和
第二层parent进行比较,以此类推
var a:any = [{ id: 1, name: 3, pid: -1, children: [] }];
const map = new Map();
// 将所有的记录以下方便取
for (const t of a) {
map.set(t.id, t);
t.children = [];
}
// 遍历添加子元素
for (const t of a) {
if (t.pid !== -1) {
const e = map.get(t.pid);
e.children.push(e);
}
}
console.log(map);
// 从map里面去除pid为
var a = [
{ id: "-1", parent: "#", text: "1" },
{ id: "1", parent: "#", text: "2" },
{ id: "2", parent: "4", text: "3" },
{ id: "3", parent: "2", text: "4" },
{ id: "4", parent: "6", text: "5" },
];
const map = new Map();
// 将所有的记录以下方便取
for (const t of a) {
map.set(t.id, t);
t.children = [];
}
map.forEach((t) => {
if (t.parent !== "#") {
const parent = map.get(t.parent);
if (parent) {
parent.children.push(t);
}
}
});
const result = [];
map.forEach((e) => {
result.push(e);
});
console.log(result);
// 从map里面去除pid为
function toTree(data) {
const res = [];
const map = {};
data.forEach((item) => {
map[item.id] = item
})
data.forEach((item) => {
let parentItem = map[item.parent];
if(parentItem) {
(parentItem.children || (parentItem.children = [])).push(item)
} else {
res.push(item)
}
})
return res
}
var arr = [
{ id: '-1', parent: '#', text: '1' },
{ id: '1', parent: '#', text: '2' },
{ id: '2', parent: '4', text: '3' },
{ id: '3', parent: '2', text: '4' },
{ id: '4', parent: '6', text: '5' }
];
console.log(sum(0, arr));
function sum(index,data) {
if(!data[index+1]) return 'no';
if(data[index].id == data[index+1].parent) return data[index+1];
return sum(index+1,data);
}
let arr = [{id:"-1",parent:"#",text:'请选择'},{id:"1",parent:"#",text:'刑事'},{id:"2",parent:"1",text:'安全罪'}];
let arrToTree =(arr, parent='#')=> {
let obj = arr.reduce((acc,cur)=>{
// 根据parent 判断是否相等来归类。true 当前级别
acc[cur.parent == parent].push(cur);
return acc;
},{true:[],false:[]})
// 当前级别
let currentArr = obj[true];
// 其他级别
let otherArr = obj[false];
return currentArr.map(item=>{
// 递归得到子级
let children = arrToTree(otherArr, item.id);
return {...item, children};
})
}
arrToTree(arr, '#');
问题内容: 我有一个代表多维数据的一维对象数组: 我应该如何将其转换为多维数组: 问题答案: 以下代码示例 将 数组转换为您要查找的树结构: 如果 现有的 父ID为,则此方法无效。但是可以很容易地更改以反映这一点。 编辑: 那么这是如何工作的呢?这利用了PHP变量别名(也称为引用)和(临时)数组,这些数组用于将a)别名存储到节点()和b)来建立新的树顺序()。 你能[…]解释的目的,并取消设置?
问题内容: 我正在寻找一个函数,该函数需要一个页面/类别的数组(来自平面数据库结果),并根据父ID生成一个嵌套的页面/类别的数组。我想递归地执行此操作,以便可以进行任何级别的嵌套。 例如:我在一个查询中获取所有页面,这就是数据库表的样子 这是我要最终在视图文件中处理的数组: 我已经看过并尝试过几乎遇到的所有解决方案(Stack Overflow上有很多解决方案,但是没有运气得到足够通用的东西同时适
接口传参的时候需要给后端传的参数是数组 大概是这样的: 在这弹窗里面,点击弹窗下面的保存按钮调接口,需要把每一行的单位代码和总人口作为参数传过去,还要判断一下id,这条数据有id的话就传id,没有id的话就不传id 只传单位代码和总人口 请问接口传参应该怎么传多维数组,把每一行的单位代码和总人口传给后端,还有判断id应该怎么去操作呢?
目前想使用codeigniter4框架对下面的数据进行验证 验证用的代码如下 目前对于上述组合来说,运行后是不会得到任何错误的,但我希望是costDepartment的每个元素都对departmentId和percentage进行相应的检查,即按照上述测试用例应该会告诉我有percentage是需要填写的,请问这个需要怎么进行修改,谢谢。
问题内容: 我有一个树结构,其中每个都有一个父级和一个。每个节点都有一个,我想在其中选择进行查询,即该节点和所有父节点的标题。如何编写此查询? 单个标题的查询就是这样,但是就像我说的那样,我希望它扩展到整个父母分支。 干杯 尼克 问题答案: 您不能使用HQL进行递归查询。看到这个。如前所述,它甚至不是标准的SQL。您有两种选择: 编写特定于供应商的递归本机SQL查询 进行多个查询。例如: 我肯定会
要求写一个方法,匹配上id后,联同祖类所有的id都获取到放到数组返回