📅  最后修改于: 2023-12-03 15:10:53.856000             🧑  作者: Mango
有时候我们需要检查一个数组是否具有唯一值,也就是说数组中的每个元素都只能出现一次,否则就说明该数组不具有唯一值。
以下是几种常见的检查数组是否具有唯一值的方法:
使用 Set 数据结构可以很方便的检查一个数组是否具有唯一值。Set 是一种特殊的集合,它的元素是唯一的,没有重复。如果将数组转换成 Set,那么如果数组有重复值,Set 会自动去重,最终的 Set 长度和原数组长度不同,就表明有重复值。
这是一个检查数组是否具有唯一值的函数:
function isUnique(arr) {
return new Set(arr).size === arr.length;
}
函数接收一个数组作为参数,返回一个布尔值,表示该数组是否具有唯一值。
对于每个元素,使用 indexOf 检查它在数组中是否只出现一次,如果重复出现,就说明该数组不具有唯一值。
这是一个检查数组是否具有唯一值的函数:
function isUnique(arr) {
for (let i = 0; i < arr.length; i++) {
if (arr.indexOf(arr[i]) !== i) {
return false;
}
}
return true;
}
函数接收一个数组作为参数,返回一个布尔值,表示该数组是否具有唯一值。
使用 reduce 方法遍历数组,同时在一个对象中记录每个元素出现的次数,如果有元素出现了多次,就说明该数组不具有唯一值。
这是一个检查数组是否具有唯一值的函数:
function isUnique(arr) {
const counts = arr.reduce((acc, val) => {
acc[val] = (acc[val] || 0) + 1;
return acc;
}, {});
for (let val in counts) {
if (counts[val] > 1) {
return false;
}
}
return true;
}
函数接收一个数组作为参数,返回一个布尔值,表示该数组是否具有唯一值。
以上是三种常见的检查数组是否具有唯一值的方法,你可以根据实际需要选择其中之一。使用 Set 可以更加简洁方便地实现,但考虑到兼容性,如果你需要支持旧版浏览器,就需要使用 indexOf 或 reduce 方法。