日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个包含嵌套递归数据结构的对象的排序实现

發(fā)布時間:2023/12/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个包含嵌套递归数据结构的对象的排序实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文和SAP Spartacus這個開源項目的一個issue有關:

https://github.com/SAP/spartacus/issues/9353

待排序的數(shù)據(jù)結(jié)構:人(Person)

person有一個字段children,類型為一個數(shù)組,類型也是person.

任務:

寫一個排序函數(shù),輸入?yún)?shù)為person類型的變量,將其children屬性里包含的person數(shù)組的元素進行遞歸排序。

完整源代碼:

// Import stylesheets import "./style.css";// Write TypeScript code! const appDiv: HTMLElement = document.getElementById("app"); appDiv.innerHTML = `<h1>TypeScript Starter</h1>`;interface person {id: number;name: string;age: number;children?: Array<person>; }let person1: person = { id: 1, name: "二十歲", age: 20, children: [] }; let person2: person = { id: 2, name: "三十歲", age: 30 }; let person3: person = { id: 3, name: "十八歲", age: 18, children: [] }; let person4: person = { id: 4, name: "四十歲", age: 40 };let person11: person = { id: 21, name: "二十歲小伙子1", age: 21 }; let person12: person = { id: 22, name: "二十歲小伙子2", age: 27 }; let person13: person = { id: 23, name: "二十歲小伙子3", age: 20 };let person31: person = { id: 31, name: "三十歲小伙子1", age: 35 }; let person32: person = { id: 32, name: "三十歲小伙子2", age: 34 }; let person33: person = { id: 33, name: "三十歲小伙子3", age: 37 };person1.children.push(person11); person1.children.push(person12); person1.children.push(person13);person3.children.push(person31); person3.children.push(person32); person3.children.push(person33);let god: person = { id: 0, name: "上帝", age: 0, children: [] };god.children.push(person1); god.children.push(person2); god.children.push(person3); god.children.push(person4);const forSPASort = (input: person) => {let result: person;if (input.children) {input.children.sort(sorter);input.children.forEach(child => {forSPASort(child);});}return input; };const sorter = (a, b) => {console.log("Jerry, a: " + a.name + " b: " + b.name);return a.age - b.age; };const result = forSPASort(god); console.log("result: " + result);

總結(jié)

以上是生活随笔為你收集整理的一个包含嵌套递归数据结构的对象的排序实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。