我有以下数组
let arr = [
[
"s1@example.com",
"s2@example.com"
],
[
"s1@example.com",
"s3@example.com"
]
]
我想从这个数组中得到唯一的值。所以我希望我的结果是这样的
[
[
"s1@example.com",
"s2@example.com",
"s3@example.com"
]
]
我使用了数组唯一函数,但无法得到结果
var new_array = arr[0].concat(arr[1]);
var uniques = new_array.unique();
如果我有两个索引,这是有效的,但是对于多个索引呢?
你可以利用Set
,它会自动处理重复,你可以在这里找到更多关于Sets的信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set
由于许多解决方案都使用flat
和Set
,因此这里有一个解决方案,它使用函数生成器来实际展平数组,只要项目不是数组,就会生成项目(否则,它会递归展平它们)。
let arr = [
[
"s1@example.com",
"s2@example.com"
],
[
"s1@example.com",
"s3@example.com"
]
];
function* flatten(array) {
for (var item of array) {
if (Array.isArray(item)) {
yield* flatten(item)
}
else yield item;
}
}
const set = [...new Set(flatten(arr))];
console.log('set is', set);
您可以使用。平()
来平坦数组,然后使用设置
来获取其唯一的值。
演示:
let arr = [
[
"s1@example.com",
"s2@example.com"
],
[
"s1@example.com",
"s3@example.com"
]
]
let arr2 = [...new Set(arr.flat(1))];
console.log(arr2)
问题内容: 我和这里的问题差不多。 我有一个包含等的数组。现在,我想从该数组中选择所有唯一元素。思想,这将是简单的用或因为他们在其他问题中提到,但没有在数组中改变…的代码是: 我究竟做错了什么? 问题答案: 有点hacky,但是应该这样做: 要将排序后的唯一结果保存回数组,请执行数组分配: 如果您的外壳支持herestrings(应该),则可以通过将其更改为以下内容来节省进程: 输入: 输出: 说
我有一个包含会员信息的服务。这里的一个变量是团队字符串。 在我的组件中,我调用服务方法将信息放在变量中,然后在组件中显示它。 我想用服务中团队的唯一列表填充组件中的变量“teams”。这应该考虑到编写(因此我将使用toUpperCase()。 我的服务: 我的组成部分:
问题内容: 如何获得数组中唯一值的列表?我是否总是必须使用第二个数组,或者是否有类似于JavaScript中Java哈希表的东西? 我将仅使用 JavaScript 和 jQuery 。不能使用其他库。 问题答案: 由于我在@Rocket答案的注释中继续进行了讨论,因此我不妨提供一个不使用任何库的示例。这需要两个新的原型函数,并且 为了提高可靠性,可以用MDN的垫片代替,并检查每个元素的值是否等于
问题内容: 在处理从YQL返回的JSON时,我发现自己正在寻找一种从数组中提取所有唯一值的方法。 代码看起来有点“忙”,我想知道是否有更优雅的方法从数组中提取唯一值。 问题答案: 您可以使用indexOf来检查元素是否在数组中。 或者如果您具有唯一的ID或名称,则使用对象而不是数组:var output = {}
问题内容: 我有一个像这样的数组: 如何删除重复的值,以便得到此信息: 我尝试使用array_unique,但是我认为由于该数组是多维的,因此无法正常工作。 编辑:我还需要此数组是多维的,并且以这种格式,我不能展平它。 问题答案: 在比较值以查找唯一值之前正在使用字符串转换: 注意 :当且仅当时,两个元素才被视为相等。换句话说:当字符串表示相同时。将使用第一个元素。 但是数组将始终转换为: 您可以
问题内容: 我需要确定一个唯一的数字数组。我在互联网上找到了下面的代码片段,并且在数组中包含零之前,它都可以正常工作。我在Stack Overflow的这里找到了另一个脚本,看起来几乎完全一样,但是它不会失败。 因此,为了帮助我学习,有人可以帮助我确定原型脚本出了什么问题吗? 问题答案: 使用 JavaScript 1.6 / ECMAScript 5, 您可以通过以下方式使用Array 的本机方