在可追溯的对象结构(代表文件系统)中搜索对象

时间:2019-03-12 10:21:20

标签: javascript

我想将我要搜索的文件夹的名称作为输入传递,并将其所属的对象作为输出。 我的数组是这样的:

const array = {
  item: [{
      name: "parentFolder1",
      item: [{
          name: "subFolder1",
          item: []
        },
        {
          name: "subFolder2",
          item: []
        }
      ]
    },
    {
      name: "parentFolder2",
      item: [{
          name: "sub1",
          item: []
        },
        {
          name: "sub2",
          item: []
        }
      ]
    }
  ]
};


const sub = Object.values(array).map(x =>
  x.find(y => y.item.find(obj => obj.name = "sub2")))

console.dir(sub)

我想要的输出:

    {
      name: "sub2",
      item: []
    }

我得到的输出:

[ { name: 'parentFolder1', item: [ [Object], [Object] ] } ]

1 个答案:

答案 0 :(得分:2)

const array = {
  item: [{
      name: "parentFolder1",
      item: [{
          name: "subFolder1",
          item: []
        },
        {
          name: "subFolder2",
          item: []
        }
      ]
    },
    {
      name: "parentFolder2",
      item: [{
          name: "sub1",
          item: []
        },
        {
          name: "sub2",
          item: []
        }
      ]
    }
  ]
};


const val = array.item.map(folder => folder.item.find(obj => obj.name === "sub2")).find(val => val)
console.log(val)