📅  最后修改于: 2023-12-03 15:10:53.869000             🧑  作者: Mango
在编程中经常会遇到需要判断一个数组是否包含相同的值的情况。本文将介绍几种实现方法。
Set是ES6中新增的一种数据结构,它类似于一个数组,但是成员的值都是唯一的,没有重复的值。我们可以通过判断Set的长度是否与原始数组的长度相等来判断是否包含相同的值。
// 数组是否包含相同的值
function hasSameValue(arr) {
return new Set(arr).size !== arr.length;
}
new Set(arr)
:将数组转换为Setnew Set(arr).size
:获取Set的长度arr.length
:获取数组的长度indexOf方法返回在数组中匹配到的第一个元素的索引值,如果没有匹配到,则返回-1。我们可以遍历数组,利用indexOf方法判断是否包含相同的值。
// 数组是否包含相同的值
function hasSameValue(arr) {
for (let i = 0; i < arr.length; i++) {
if (arr.indexOf(arr[i]) !== i) {
return true;
}
}
return false;
}
arr.indexOf(arr[i])
:判断数组中是否有当前元素的索引值与i相同includes方法返回一个布尔值,表示当前数组是否包含指定的值。我们也可以遍历数组,利用includes方法判断是否包含相同的值。
// 数组是否包含相同的值
function hasSameValue(arr) {
for (let i = 0; i < arr.length; i++) {
if (arr.includes(arr[i], i + 1)) {
return true;
}
}
return false;
}
arr.includes(arr[i], i + 1)
:判断数组中下一个位置是否有与当前元素相同的值总结:以上是几种在JavaScript中检查数组是否有相同的值的方法。虽然方法不同,但它们都能很好地满足我们的需求。