es6如何判断数组是否含有相同的值
陈文婷 2023-07-11编程经验
什么是ES6?ES6是ECMAScript的第六个版本,它给JavaScript新增了很多新特性,比如说箭头函数、模板字符串、Promise等等。ES6使得JavaScript更加高效、简洁、易读易理解。验证数组是否包含
什么是ES6?
ES6是ECMAScript的第六个版本,它给JavaScript新增了很多新特性,比如说箭头函数、模板字符串、Promise等等。ES6使得JavaScript更加高效、简洁、易读易理解。
验证数组是否包含相同的元素
在ES6中,可以使用Set这个数据结构来对数组进行去重。如果一个数组中没有重复的元素,那么通过对该数组进行去重后,它的长度应该是不变的。因此,我们可以拿原先的数组长度和去重之后的数组长度进行对比,从而得出该数组是否包含相同的元素。
const arr = [1, 2, 3, 4, 5];
const setArr = new Set(arr);
if (setArr.size === arr.length) {
console.log('该数组没有重复元素');
} else {
console.log('该数组包含重复元素');
}
上述代码首先创建了一个数组,并将其转化成了Set类型。Set类型是ES6提供的一种无序且不重复的数据结构。通过判断原数组的长度和Set类型的长度是否相等,来判断原数组是否包含重复元素。
查找数组中重复的元素
如果要找出数组中重复的元素,我们可以使用一个Map来记录每个元素的出现次数。如果一个元素出现的次数大于1,那么该元素就是数组中的重复元素。
const arr = [1, 2, 2, 3, 4, 4, 5];
const map = new Map();
for (let i = 0; i < arr.length; i++) {
if (map.has(arr[i])) {
map.set(arr[i], map.get(arr[i]) + 1);
} else {
map.set(arr[i], 1);
}
}
for (const [key, value] of map) {
if (value > 1) {
console.log(`${key} 是重复的元素`);
}
}
上述代码首先创建了一个数组,并通过for循环来遍历数组中的每个元素。在遍历的过程当中,使用一个Map类型来记录每个元素出现的次数。最后再遍历Map,输出其中值大于1的元素,即可找出数组当中的重复元素。
使用ES6 Array.prototype.filter方法判断数组里是否存在相同的元素
使用filter方法可以很方便地判断数组里是否存在相同的元素。我们可以将原数组分别和去重后的数组进行比对,如果它们的长度不同,说明原数组里存在重复的元素。
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.filter((item, index) => {
return arr.indexOf(item) === index;
});
if (uniqueArr.length !== arr.length) {
console.log('该数组存在重复元素');
} else {
console.log('该数组不含重复元素');
}
上述代码中,我们使用了ES6中的Array.prototype.filter方法过滤出不重复的元素,然后通过和原数组的长度比较来判断是否存在重复的元素。
很赞哦! ()