TypeScript里对数组元素的自定义属性排序的实现原理

81 阅读1分钟

源代码:

// Import stylesheets
import "./style.css";

// Write TypeScript code!
const appDiv: HTMLElement = document.getElementById("app");
appDiv.innerHTML = `<h1>TypeScript Starter</h1>`;

let persons = [
  { id: 1, name: "张三", age: 20 },
  { id: 2, name: "李四", age: 18 },
  { id: 3, name: "王五", age: 16 },
  { id: 4, name: "赵六", age: 40 }
];

const sorter = (a, b) => {
  console.log("Jerry, a: " + a.name + " b: " + b.name);
  return a.age - b.age;
};

let ascPersons = persons.sort(sorter);
console.log("------------------升序-------------------");
console.log(ascPersons);

调试:
第一次:先是第一个和第二个元素比较:

a: 李四 b:张三

第二次:

a:王五 b:李四

王五是原始的第三个元素

第三次:

赵6和王五:

王五最年轻,难道是冒泡排序?

第四次:赵六和李四 李四是第二年轻的

第五次:赵六和张三

五次比较搞定:

更多Jerry的原创文章,尽在:“汪子熙”: