javascript - 将嵌套数组组合成具有唯一项的单个数组
问题描述
假设我有一个像这样的对象:
hex_ids = [
["8d267451c3858ff", "8d267451c385bbf", "8d267451c385b3f", "8d267451c385b7f", "8d267451c3ae6bf", "8d267451c3ae6ff", "8d267451c3ae67f", "8d267451c3aa93f"],
["8d267451c3aa93f", "8d267451c3ae2ff", "8d267451c3ae27f", "8d267451c3a8cbf", "8d267451c3a8dbf", "8d267451c3a8d3f", "8d267451c3ac6ff"]
]
该数组有 2 个嵌套数组,每个数组都有不同的长度。每个嵌套数组中的至少一项也存在于另一项中。我想要做的是将这两个嵌套数组组合成一个具有唯一项的数组,并消除这样的任何冗余:
hex_ids = ["8d267451c3858ff", "8d267451c385bbf", "8d267451c385b3f", "8d267451c385b7f",
"8d267451c3ae6bf", "8d267451c3ae6ff", "8d267451c3ae67f", "8d267451c3aa93f", "8d267451c3ae2ff",
"8d267451c3ae27f", "8d267451c3a8cbf", "8d267451c3a8dbf", "8d267451c3a8d3f", "8d267451c3ac6ff"]
最简单的方法是什么?
解决方案
将数组展平Array#flat
并获得唯一值:
const array = [
["8d267451c3858ff", "8d267451c385bbf", "8d267451c385b3f", "8d267451c385b7f", "8d267451c3ae6bf", "8d267451c3ae6ff", "8d267451c3ae67f", "8d267451c3aa93f"],
["8d267451c3aa93f", "8d267451c3ae2ff", "8d267451c3ae27f", "8d267451c3a8cbf", "8d267451c3a8dbf", "8d267451c3a8d3f", "8d267451c3ac6ff"]
]
const result = [...new Set(array.flat())];
console.log(result);
推荐阅读
- go - Go:没有对包进行测试时的错误覆盖率
- sql - 游标/递归是这里唯一可能的选择吗?根据某些滞后条件设置基于逻辑
- javascript - 使用全局变量来防止代码不必要地重复执行
- ruby-on-rails - Rails - 在同一页面上呈现活动部分?
- blazor - 检查是否设置了 EventCallback Blazor
- c++ - C++函数模板实参推导指南
- git - 恢复文件:错误:路径“app/controllers/conversations_controller.rb”未合并
- phoenix-framework - 如何使用 Phoenix 自定义布局呈现错误 404?
- javascript - 实例没有被垃圾回收
- jmeter - Jmeter证书记录测试的问题