gpt4 book ai didi

javascript - 使用 lodash 进行无限深度搜索

转载 作者:行者123 更新时间:2023-11-29 16:45:13 25 4
gpt4 key购买 nike

我有一个动态对象数组,其中有无限嵌套的 items 数组,如下所示:

var items = [{
id: '7172hsdr',
item: {},
items: []
},
{
id: '5343rtas',
item: {},
items: [{
id: '4545nrhk',
item: [],
items: [{
id: 'kbkb1212',
item: [],
items: []
}]
}]
}]

我想在此集合中搜索并找到 ID 为 kbkb1212 的对象。我更喜欢用 lodash 来做。

问题是有时我会寻找 ID 为 7172hsdr 的对象,有时我需要例如 kbkb1212

我做了什么

我使用了以下搜索第一级的功能。

var item = _.find(items, { id: '7172hsdr' });

它工作正常,但如果我需要 kbkb1212,它就不需要。

最佳答案

在纯 Javascript 中,您可以使用交互和递归方法在嵌套数据结构中查找项目。

function find(array, id) {
var object;

array.some(function f(a) {
if (a.id === id) {
object = a;
return true;
}
if (Array.isArray(a.items)) {
return a.items.some(f);
}
});
return object;
}

var items = [{ id: '7172hsdr', item: {}, items: [] }, { id: '5343rtas', item: {}, items: [{ id: '4545nrhk', item: [], items: [{ id: 'kbkb1212', item: [], items: [] }] }] }];

console.log(find(items, '7172hsdr'));
console.log(find(items, 'kbkb1212'));
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 使用 lodash 进行无限深度搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42175580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com