gpt4 book ai didi

javascript - 查询大型 JSON 对象的条件

转载 作者:行者123 更新时间:2023-12-03 01:00:47 26 4
gpt4 key购买 nike

我正在尝试解析a large JSON object对于特定条件

我当前的方法是设置递归过滤器:

function filter(obj,fn,items){
//Initialise items array
if(items==undefined)
items = []

//Filter for specific child objects
if(obj.children!=undefined){
obj.children.forEach(function(element){
if(fn(element)){
items.push(element)
}
filter(element,fn,items)
})
}

//Return items
return items
}

调用方式如下:

filter(data.items[0],function(el){
if(el.children != undefined)
return el.children.filter(function(el){
return el.toc_title == "Events"
}).length>0
})

效果很好,但在我看来,这种查询相当常见......是否有现有的内置函数可以完成这项工作?

最佳答案

您的代码似乎以正确的方式工作,尽管您可以递归地使用 mapfilter 方法之间的组合。这样,您将获得更高效的代码。 Here您可以找到一些有关如何递归使用这些函数的示例。一个例子可以是:

let filteredFnc = (jsonObj) => jsonObj.filter(jsonObj => jsonObj.children !== undefined)
let map = (filteredFnc, obj) => !obj.length ? [] : [filteredFnc(obj[0])].concat(map(filtered, obj), obj.slice(1)));

关于javascript - 查询大型 JSON 对象的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52631733/

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