let array = [ { id: 1, name: "001", children: [ { id: 2, name: "002", }, ], }, { id: 3, name: "003", children: [] }, ]; function getFlatArr(arr) { return arr.reduce((a, item) => { let flatArr = [...a, item]; if (item.children) { flatArr = [...flatArr, ...getFlatArr(item.children)]; } return flatArr; }, []); } console.log(getFlatArr(array)); function getNameByIdFromArr(arr, id) { return getFlatArr(arr).find((item) => item.id === id).name; } console.log(getNameByIdFromArr(array, 2));