973.最接近原点的K个数
/**
* @param {number[][]} points
* @param {number} k
* @return {number[][]}
*/
var kClosest = function (points, k) {
// 这里,平面上两点之间的距离是 欧几里德距离( √(x1 - x2)^2 + (y1 - y2)^2 )。
// map记录每个点距离原点的距离
// 原点是(0,0)
const distanceMap = new Map()
points.forEach((point, index) => {
let x = point[0]
let y = point[1]
let distance = (x - 0) * (x - 0) + (y - 0) * (y - 0)
distanceMap.set(point, distance)
})
console.log(distanceMap)
// 按照距离排序
const arr = Array.from(distanceMap) // map转数组
arr.sort((a, b) => a[1] - b[1])
console.log(arr)
// 截取距离最近的k项并返回点
return arr.slice(0, k).map(item => item[0])
};
console.log(kClosest([[1, 3], [-2, 2]], 1))