js中如何从带有数字的对象数组中获取唯一的没有key-value的对象?

问题描述 投票:0回答:1

我很抱歉发布这样的问题,但我真的很想知道这一点,我已经使用 Set、Map 或数组过滤方法来执行相同的操作,但当我拥有第一组带有键值的数组时,它会起作用但现在我想在没有任何键的情况下对第二个给定数组执行相同的操作。

const list = [{ x: 1, y: 2 }, 
{ x: 3, y: 4 },
{ x: 5, y: 6 }, 
{ x: 1, y: 2 }];

我想从以下数组中获取唯一元素,然后按降序对它们进行排序。

 const list = [[1, 2 ], 
    [ 3, 4 ],
    [ 5, 6 ], 
    [ 1, 2 ]];

谢谢

javascript arrays unique
1个回答
0
投票

const set = new Set;
const result = list.reduce((r, {x, y}) => {
  const key = `${x}.${y}`;
  if(!set.has(key)){
    r.push([x, y]);
    set.add(key);
  }
  return r;
}, []).sort(([ax, ay], [bx, by]) => ax - bx || bx - by);

console.log(...result);
<script>
const list = [{ x: 1, y: 2 }, 
{ x: 5, y: 6 }, 
{ x: 1, y: 2 },
{ x: 3, y: 4 },
];
</script>

© www.soinside.com 2019 - 2024. All rights reserved.