[英]How can i push recursive array in Vue 3?
我必須開發一個具有無限線程的甘特圖。 如何遞歸地在子任務中插入子任務? 提前致謝
<select class="border border-gray-300 rounded-lg" v-model="taskParent">
<option value="" selected>Select parent</option>
<option v-for="parent in taskParents" :key="parent.id" :value="parent">
{{parent.name}}
</option>
</select>
const taskParents = computed(() => {
return tasks.reduce((curr, task) => {
curr.push(task)
task.children.forEach((child) => { //this foreach is the part to be changed
curr.push(task)
})
return curr
}, []);
})
您可以使用此 function 來獲得數組的扁平表示
function flatten(item){
const result = [item];
item.children.forEach(child => {
result.push(...flatten(child));
});
return result;
}
然后就寫
const taskParents = computed(() => { return flatten(task) }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.