【发布时间】:2019-11-04 20:16:01
【问题描述】:
我正在尝试编写一个搜索函数,该函数可以搜索对象数组的数组并返回名称中包含搜索字符串的任何对象。
我遇到的问题是对象数组可以包含一个子数组,而子数组也可以有一个子数组。我需要动态搜索所有可能的孩子并返回结果
我曾尝试使用 Algolia 来执行此操作,但由于文件结构不会不断更新,我觉得使用 Array.includes 或类似的东西会更好
我尝试了以下功能,但似乎无法正常工作
searchArray(subMenuItems, name) {
if (subMenuItems) {
for (let i = 0; i < subMenuItems.length; i++) {
if (subMenuItems.includes(name)) {
return subMenuItems[i];
}
const found = this.getSubItem(subMenuItems[i].children, name);
if (found) {
return found;
}
}
}
}
这是一个对象数组的例子
[
[
{
"children":[
{
"children":[
{
"fileSize":"1.2MB",
"fileUrl":"https://linktoPDF.com",
"name":"GF Kitchen ",
"type":"file"
}
],
"name":"Ground Floor Kitchen",
"type":"folder"
}
],
"name":"House",
"type":"folder"
}
],
[
{
"fileSize":"1.3MB",
"fileUrl":"https://linktoPDF.com",
"name":"Introduction and Overview",
"type":"file"
},
{
"fileSize":"20MB",
"fileUrl":"https://linktoPDF.com",
"name":"VISUAL iPad Location Drawing",
"type":"file"
},
{
"fileSize":"1MB",
"fileUrl":"https://linktoPDF.com",
"name":"Control Surface",
"type":"file"
},
{
"fileSize":"1.3MB",
"fileUrl":"https://linktoPDF.com",
"name":"Scene",
"type":"file"
}
]
]
【问题讨论】:
-
还请包括您迄今为止尝试过的内容。你的例子对我来说就像 Json。
-
更新了我正在尝试使用的功能
-
是的,我明白了,但是我如何在不知道对象中有多少孩子或孩子的孩子的情况下搜索所有可能的孩子和孩子的孩子
标签: javascript arrays angular google-cloud-firestore