Ano*_*mus 4 javascript arrays sorting object absolute
根据与x 的绝对差值重新排列数组元素 ,即差值最小的元素排在前面,依此类推。就像我采用数组 [10, 5, 3, 9, 2, 3]和x = 7那么每个元素的绝对差应该是 =
7 - 10 = 3(abs)
7 - 5 = 2
7 - 3 = 4
7 - 9 = 2(abs)
7 - 2 = 5
7 - 3 = 4
Run Code Online (Sandbox Code Playgroud)
因此根据与 X 的差异,元素排列为[5,9,10,3,3,2]。
我已经通过下面的代码尝试过,但仍然失败:
7 - 10 = 3(abs)
7 - 5 = 2
7 - 3 = 4
7 - 9 = 2(abs)
7 - 2 = 5
7 - 3 = 4
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我正在制作只有一个键但值在这里重复的对象..我找不到另一种解决它的方法,我得到的答案是[5,9,10,3,2] :(..
正如你所看到的,我正在制作只有一个键但值在此处重复的对象
对象不能具有重复的属性,因此当您重复某个属性时,它会用新值覆盖前一个属性
您可以简单地使用排序Math.abs
let arr = [10, 5, 3, 9, 2, 3]
let x = 7
let sortByDiff = (arr,x) => arr.sort((a,b)=> Math.abs(a-x) - Math.abs(b-x))
console.log(sortByDiff(arr,x))Run Code Online (Sandbox Code Playgroud)