- 41
- 0
将递归得到的对象push到数组中
let selections = [];
for (let leaf of this.tree) {
let result = this.recursion(this.items, leaf);
selections.push(result);
}
递归函数
recursion(data, id) {
let result;
if (!data) {
return;
}
for (var i = 0; i < data.length; i++) {
let item = data[i];
if (item.id === id) {
result = item;
break;
} else if (item.children && item.children.length > 0) {
result = this.recursion(item.children, id);
}
}
console.log(result);
return result;
},
this.items为树结构的数据
items: [
{
id: 1,
name: 'Vuetify Human Resources',
children: [
{
id: 2,
name: 'Core team',
children: [
{
id: 201,
name: 'John'
},
{
id: 202,
name: 'Kael'
},
{
id: 203,
name: 'Nekosaur'
},
{
id: 204,
name: 'Jacek'
},
{
id: 205,
name: 'Andrew'
}
]
},
{
id: 3,
name: 'Administrators',
children: [
{
id: 301,
name: 'Ranee'
},
{
id: 302,
name: 'Rachel'
}
]
},
{
id: 4,
name: 'Contributors',
children: [
{
id: 401,
name: 'Phlow'
},
{
id: 402,
name: 'Brandon'
},
{
id: 403,
name: 'Sean'
}
]
}
]
},
{
id: 5,
name: 'Example',
children: [
{
id: 501,
name: 'qaz'
}
]
},
{
id: 6,
name: 'Qdd',
children: [
{
id: 601,
name: 'yui'
}
]
}
],
tree为树选中的数据[201,202,203]
在递归中我想要得到id所在的对象,在第一个方法中push到数组中形成一个数组集合,现在递归方法出现了问题得到的result为undefined,请各位帮我看下?
- 共 0 条
- 全部回答
-
┆щō夠làㄙ┆ 普通会员 1楼
在Vue中,你可以使用递归来查找id对应的对象。以下是一个简单的例子:
```javascript export default { data() { return { items: [ { id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }, { id: 3, name: 'Item 3' }, { id: 4, name: 'Item 4' }, { id: 5, name: 'Item 5' }, { id: 6, name: 'Item 6' } ] }; }, methods: { findItemById(id) { if (!this.items || !this.items[id]) { return null; }
const item = this.items[id]; if (item && item.id === id) { return item; } return this.findItemById(id); }} }; ```
在这个例子中,我们定义了一个数据结构
items,其中包含了多个对象,每个对象都有一个唯一的id属性。我们还定义了一个方法findItemById,它接受一个id参数,并在items数组中查找该id对应的对象。如果找到了,就返回这个对象;如果没有找到,就递归地查找下一个id。注意,这个例子中的递归查找是基于深度优先搜索的,如果
items数组的深度很深,可能会非常慢。在实际使用中,你可能需要使用更复杂的数据结构或算法来提高查找速度。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
