我有一個嵌套物件:
{
id: 240,
name: 'FY1 2022',
children: [
{
id: 241,
name: 'Q1 2022',
children: [
{
id: 242,
name: 'Jan 2022',
},
{
id: 243,
name: 'Feb 2022',
},
{
id: 244,
name: 'Mar 2022',
},
],
},
],
};
我需要將所有 id 值從沒有屬性的物件中獲取到一個陣列中children。
有沒有辦法做到這一點?
提前致謝!
uj5u.com熱心網友回復:
你可以試試這個:
type MyObject = {
id: number,
name: string,
children?: MyObject[]
}
function getIds(obj: MyObject): number[] {
if (!obj.children) {
return [obj.id];
}
return obj.children.reduce((ids:number[],o: MyObject)=> {
ids.push(...getIds(o))
return ids
},[]);
}
uj5u.com熱心網友回復:
試試這個(使用遞回)
const test = {
id: 240,
name: 'FY1 2022',
children: [
{
id: 241,
name: 'Q1 2022',
children: [
{
id: 242,
name: 'Jan 2022',
},
{
id: 243,
name: 'Feb 2022',
},
{
id: 244,
name: 'Mar 2022',
},
],
},
],
};
function addToArray(array, obj) {
if (obj.children) {
obj.children.forEach(child => addToArray(array, child))
} else {
array.push(obj.id)
}
return array
}
const array = []
console.log(addToArray(array, test))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/463621.html
標籤:javascript 反应 打字稿 目的 嵌套的
上一篇:物件中的類函式(node.js)
下一篇:js中的匯入匯出類
