需求:提供一个小明对象 xm,里面有 name 名字,home 距离和一个数组 schoolArr,里面有很多结构和小明一样的人物对象,对这个数组进行排序,找到每个人距离小明的距离,把距离短的放前面。
思路:计算每个人到小明的距离,使用数组方法 sort,根据距离排序
代码实现:
let xm = { name: "小明", home: 700, }; let schoolArr = [ { name: "小A", home: 500, }, { name: "小B", home: 600, }, { name: "小C", home: 701, }, { name: "小D", home: 10, }, { name: "小E", home: 800, }, { name: "小F", home: 720, }, ]; const sort = (arr, info) => { const dis = (p1, p2) => { return Math.abs(p1.home - p2.home); }; return arr .map((it) => ({ ...it, dis: dis(it, info) })) .sort((a, b) => a.dis - b.dis); }; let resArr = sort(schoolArr, xm);