如何使用 Array.map 函数从数组的数组中获取新的 Set?
How to get new Set from array of arrays by using Array.map function?
现在正在探索 Set,但无法从其中包含 x 个数组的数组中获取新的 Set。
我在 new Set().
中使用什么 Array.map 方法
这是我正在尝试做的事情,这看起来合乎逻辑,但最终只有第一个数组的值:
new Set(...array.map(x => x.value));
了解我做错了什么以及它应该是什么样子会很棒
更新:
为了更清楚我的需要:
const array = [[1,1,3,4], [2,2,3,4], [1,1,3,5]];
new Set(...array.map(x => x));
我的目标是 [1,2,3,4,5]
但得到 [1,3,4]
解决方案:
new Set(array.map(x => x.value).flat())
您只需要数组,不需要展开的参数:
new Set(array.map(x => x.value));
来自Set
:
Syntax
new Set()
new Set(iterable)
对于嵌套数组,你首先需要一个平面:
const
array = [[1, 1, 3, 4], [2, 2, 3, 4], [1, 1, 3, 5]],
unique = new Set(array.flat()),
result = [...unique].sort((a, b) => a - b);
console.log(...unique); // still a set
console.log(...result); // array, sorted
现在正在探索 Set,但无法从其中包含 x 个数组的数组中获取新的 Set。 我在 new Set().
中使用什么 Array.map 方法这是我正在尝试做的事情,这看起来合乎逻辑,但最终只有第一个数组的值:
new Set(...array.map(x => x.value));
了解我做错了什么以及它应该是什么样子会很棒
更新: 为了更清楚我的需要:
const array = [[1,1,3,4], [2,2,3,4], [1,1,3,5]];
new Set(...array.map(x => x));
我的目标是 [1,2,3,4,5]
但得到 [1,3,4]
解决方案:
new Set(array.map(x => x.value).flat())
您只需要数组,不需要展开的参数:
new Set(array.map(x => x.value));
来自Set
:
Syntax
new Set() new Set(iterable)
对于嵌套数组,你首先需要一个平面:
const
array = [[1, 1, 3, 4], [2, 2, 3, 4], [1, 1, 3, 5]],
unique = new Set(array.flat()),
result = [...unique].sort((a, b) => a - b);
console.log(...unique); // still a set
console.log(...result); // array, sorted