关键词

JS中的算法与数据结构之集合(Set)实例详解

JS中的算法与数据结构之集合(Set)实例详解

1. 什么是Set?

Set 是ES6新增的数据结构,它是一种无序且唯一的数据集合,类似于数组,但是它不允许有相同的元素存在,可以用来存储任何类型的值(对象,字符串,数字等)。 Set可以显著地提高数据读取效率和数据去重的效果。

2. Set的使用方法

2.1 创建Set并添加元素

// 创建set
const set = new Set()
// 添加元素
set.add(1)
set.add(2)
set.add(3)
console.log(set)  // Set(3) {1, 2, 3}

2.2 Set的基本操作

  • has(): 判断某个元素是否在set中
  • delete(): 删除某个元素
  • clear(): 删除set中所有元素
// set基本操作
console.log(set.has(2))  // true
set.delete(2)
console.log(set)  // Set(2) {1, 3}
set.clear()
console.log(set)  // Set(0) {}

2.3 Set实现数组去重

const arr = [1, 2, 3, 2, 4, 3, 5]
const set = new Set(arr)
const newArr = [...set]
console.log(newArr)  // [1, 2, 3, 4, 5]

3. Set的实例应用

3.1 判断字符串中有多少个不同的字符

const countChar = str => {
  const set = new Set(str)
  return set.size
}
console.log(countChar('hello world')) // 9

3.2 求两个数组的交集

const intersection = (arr1, arr2) => {
  const set1 = new Set(arr1)
  const set2 = new Set(arr2)
  return [...set1].filter(item => set2.has(item))
}
console.log(intersection([1, 2, 3], [2, 3, 4])) // [2, 3]

4. 结语

本文主要介绍Set这种数据结构的基本操作和实例应用,这个数据结构在实际编程中非常实用,能够大大提高程序的效率。开发者可以结合实际应用场景灵活使用。

本文链接:http://task.lmcjl.com/news/11145.html

展开阅读全文