当前位置: 首页 > wzjs >正文

中国建设银行网站e路搜索引擎关键词怎么优化

中国建设银行网站e路,搜索引擎关键词怎么优化,成都最新疫情发布,住房和城乡建设部网站下载一、Set基础 在 JavaScript 中,Set 是一种集合(Collection)​数据结构,用于存储唯一值​(不允许重复),并且可以高效地进行添加、删除、查询等操作。它类似于数组(Array)…

一、Set基础

在 JavaScript 中,Set 是一种集合(Collection)​数据结构,用于存储唯一值​(不允许重复),并且可以高效地进行添加、删除、查询等操作。它类似于数组(Array),但成员的值都是唯一的,没有重复项。


1. Set 的基本特性

  • 存储唯一值Set 不会存储重复的值,如果尝试添加重复值,会被自动忽略。
  • 无序存储Set 中的元素没有索引,遍历顺序与插入顺序一致,但不支持索引访问(如 set[0])。
  • 可迭代:可以使用 for...of 或 forEach 遍历 Set 中的元素。
  • 支持任意数据类型:可以存储 numberstringobjectfunction 等,但 NaN 和 undefined 也可以被存储。

2. 创建 Set

const mySet = new Set(); // 空 Set
const mySet2 = new Set([1, 2, 3, 4, 4, 5]); // 自动去重,最终存储 [1, 2, 3, 4, 5]

3. Set 的常用方法

方法描述示例
add(value)添加一个值,返回 Set 本身(可链式调用)mySet.add(10).add(20)
delete(value)删除某个值,返回 boolean(是否删除成功)mySet.delete(1)
has(value)检查 Set 是否包含某个值,返回 booleanmySet.has(2)
clear()清空 SetmySet.clear()
size返回 Set 的元素个数(类似 Array.lengthmySet.size

示例:​

const set = new Set();set.add(1); // Set { 1 }
set.add(2); // Set { 1, 2 }
set.add(2); // 重复值,被忽略
set.add("hello"); // Set { 1, 2, "hello" }console.log(set.size); // 3
console.log(set.has(1)); // true
set.delete(1); // true
console.log(set.has(1)); // false

4. Set 的遍历方法

Set 是可迭代的,可以使用以下方式遍历:

​**(1) for...of 循环**

const set = new Set([1, 2, 3]);for (const item of set) {console.log(item); // 1, 2, 3
}

​**(2) forEach 方法**

set.forEach((value) => {console.log(value); // 1, 2, 3
});

​**(3) 转换成数组(Array.from 或 [...set])​**

const arr = Array.from(set); // [1, 2, 3]
const arr2 = [...set]; // [1, 2, 3]

5. Set 的应用场景

​**(1) 数组去重**

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = [...new Set(arr)]; // [1, 2, 3, 4, 5]

​**(2) 判断元素是否存在(比 Array.includes 更快)​**

const set = new Set([1, 2, 3]);
console.log(set.has(2)); // true

​**(3) 存储非重复对象(需注意引用类型)​**

const obj1 = { name: "Alice" };
const obj2 = { name: "Bob" };
const set = new Set([obj1, obj2, obj1]); // 存储 obj1 和 obj2(obj1 只存一次)

​**(4) 数学集合运算(并集、交集、差集)​**

const setA = new Set([1, 2, 3]);
const setB = new Set([2, 3, 4]);// 并集
const union = new Set([...setA, ...setB]); // Set {1, 2, 3, 4}// 交集
const intersection = new Set([...setA].filter(x => setB.has(x))); // Set {2, 3}// 差集(A - B)
const difference = new Set([...setA].filter(x => !setB.has(x))); // Set {1}

6. Set 与 Array 的区别

特性SetArray
唯一性不允许重复值允许重复值
索引访问不支持 set[0]支持 arr[0]
查找效率has() 是 O(1)includes() 是 O(n)
顺序插入顺序索引顺序
方法add() / delete()push() / pop()

7. 注意事项

  • NaN 在 Set 中被认为是相同的值:
    const set = new Set();
    set.add(NaN);
    set.add(NaN); // 只会存一个 NaN
  • Set 存储对象时,比较的是引用而非值:
    const obj1 = { a: 1 };
    const obj2 = { a: 1 };
    set.add(obj1);
    set.add(obj2); // 会存储两个对象,因为引用不同

总结

  • Set 是一种存储唯一值的集合,适用于去重、快速查找、集合运算等场景。
  • 主要方法:add()delete()has()clear()size
  • 遍历方式:for...offorEach[...set]
  • 相比数组,Set 在去重和查找方面更高效,但不支持索引访问。

如果你需要存储不重复的值,并且希望高效地判断某个值是否存在,Set 是一个很好的选择!

二、349.两个数组的交集

给定两个数组 nums1 和 nums2 ,返回 它们的输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序

示例 1:

输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]

示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
解释:[4,9] 也是可通过的

 方法 1:使用 Set 去重 + 遍历查找

function intersection(nums1, nums2) {const set1 = new Set(nums1);const set2 = new Set(nums2);const result = [];for (const num of set1) {if (set2.has(num)) {result.push(num);}}return result;
}

方法 2:使用 Set + Array.filter

function intersection(nums1, nums2) {const set1 = new Set(nums1);const set2 = new Set(nums2);return [...set1].filter(num => set2.has(num));
}

方法 3:仅使用 Set + Array.includes(适用于小规模数据)​

function intersection(nums1, nums2) {const uniqueNums1 = [...new Set(nums1)];return uniqueNums1.filter(num => nums2.includes(num));
}

总结

  • 使用 Set 去重 是解决此类问题的关键。
  • 遍历查找交集 时,Set.has() 比 Array.includes() 更高效(O(1) vs O(n))。
  • 返回结果顺序不重要,因此直接返回过滤后的数组即可。

350. 两个数组的交集 II

 

给你两个整数数组 nums1nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。

示例 1:

输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2,2]

示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[4,9]

提示:

  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 1000

需要统计次数,就需要用上数组了。也可以用map 但还没复习到,后续会更新。

/*** @param {number[]} nums1* @param {number[]} nums2* @return {number[]}*/
var intersect = function(nums1, nums2) {let hashs = new Array(1001).fill(0);let result=[];for(let i=0;i<nums1.length;i++){hashs[nums1[i]]++;}for(let i=0;i<nums2.length;i++){if(hashs[nums2[i]]>0) {result.push(nums2[i]);hashs[nums2[i]]--;  }}return result;
};

 

http://www.dtcms.com/wzjs/146997.html

相关文章:

  • 怎么做网站的跳转网店运营
  • h5是什么意思啊百度推广优化是什么意思
  • 外包小程序开发疑虑解答网络优化软件有哪些
  • 免费空间说说赞领取网站免费制作网站的软件
  • 网站开发融资佣金高的推广平台
  • 兰州网站建设企业名录搜狗权重查询
  • 政府网站建设费用明细服装品牌策划方案
  • 网站优化公司排行百度升级最新版本下载安装
  • 哪个网站可以做3d互联网营销师怎么报名
  • 建设网站需要分析什么网络营销策划论文
  • 自己做的网站会被黑吗搜索词和关键词
  • 文字图片生成器在线重庆seo推广服务
  • 沧州商城网站建设手机百度网盘下载慢怎么解决
  • 佛山市手机网站建设哪家好引流平台有哪些
  • 廊坊网站建设方案服务微信朋友圈广告怎么推广
  • 成都营销型网站seo网站推广软件 快排
  • 深圳哪里有做网站的公司资源网站优化排名软件公司
  • 网站建设案例要多少钱优化游戏的软件
  • 南山商城网站建设多少钱长沙seo优化推广
  • 网站服务器崩溃一般多久可以恢复合肥网站推广
  • 制作网页网站的软件是会计培训机构排名前十
  • 一个新的网站开发语言seo优化方案策划书
  • 提交网站到百度湖南株洲疫情最新情况
  • 广西柳州网站建设公司郑州seo技术顾问
  • 凡科网站怎么做适合小学生的最新新闻
  • 用自己电脑配置服务器做网站网络营销的策略
  • 电子商务网站建设代码湖北短视频搜索seo
  • b站up推广怎么收费做搜索引擎优化的企业
  • 动态网站开发案例教程seo优化查询
  • 景安服务器管理助手如何备份网站潍坊网站建设方案咨询