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

泰安建设局网站天津搜索引擎优化

泰安建设局网站,天津搜索引擎优化,网站的主题,公司推广是做什么的现在有这么一个重复数组#xff1a;const arr [a,a,b,a,b,c]只推荐简单高效的方法#xff0c;复杂繁琐的方法不做推荐方法一#xff1a;const res [...new Set(arr)]Set类型是什么呢#xff1f;Set 是ES6新增的一种新集合类型。具体知识点可以看下面附录#xff1a;根据…现在有这么一个重复数组const arr [a,a,b,a,b,c]只推荐简单高效的方法复杂繁琐的方法不做推荐方法一const res [...new Set(arr)]Set类型是什么呢Set 是ES6新增的一种新集合类型。具体知识点可以看下面附录根据上面的知识点我们可以得到console.log(...new Set(arr)) // a b c所以去重也可以这么实现const res Array.from(new Set(arr)) // Array.from将类数组转换成数组 // or const res Array.of(...new Set(arr)) // Array.of根据传入的参数生成数组方法二var arr [apple,apps,pear,apple,orange,apps]; var newArr arr.filter(function(item,index){return arr.indexOf(item) index; // 因为indexOf 只能查找到第一个 });方法三some 循环去重function distinct(list) {let result [list[0]];// 用于承接没有重复的数据初始时将原始数组的第一个值赋给它。for (let i 1; i list.length; i) {// 判断结果数组中是否存在一样的值若果没有的话则将数据存入结果数组中。if (!(result.some(val list[i] val))) {result.push(list[i]);}}return result;}方法四如果不能用ES6、5的语法。需要原生方法双重for循环去重function noRepeat(arr) {for(var i 0; i arr.length-1; i){for(var j i1; j arr.length; j){if(arr[i]arr[j]){arr.splice(j,1);j--;}}}return arr;}方法五简单数组用includes去重function noRepeat(arr) {let newArr [];for(i0; iarr.length; i){if(!newArr.includes(arr[i])){newArr.push(arr[i])}}return newArr }附录 -Set使用 new 关键字和 Set 构造函数可以创建一个空集合const s new Set();如果想在创建的同时初始化实例则可以给 Set 构造函数传入一个可迭代对象Array Map Set WeakMap WeakSet。可迭代对象需要包含插入到新集合实例中的元素(Set 可以包含任何 JavaScript 数据类型作为值)。Set构造函数会迭代传入参数去重后保存到集合实例中。特点Set 是唯一值的集合。每个值在 Set 中只能出现一次。一个 Set 可以容纳任何数据类型的任何值。你可以把Set想像成跟数组一样我们用size来输出Set集合的长度。const s new Set([a,b,c,c]); s.size; // 3 去重了一个c const s2 new Set(); s2.add(a) s2.add(b) s2.add(c) s2.size // 3与Array的区别最根本的区别是数组是一个索引集合这说明数组中的数据值按索引排序。相比之下set是一个键的集合。set不使用索引而是使用键对数据排序看下面forEach。set 中的元素按插入顺序是可迭代的它不能包含任何重复的数据。对比Array的优势在运行时间方面上Set占了很大的优势查看元素使用indexOf()或includes()检查数组中的项是否存在是比较慢的。删除元素:在Set中可以根据每项的的 value 来删除该项。在数组中等价的方法是使用基于元素的索引的splice()。与前一点一样依赖于索引的速度很慢。保存 NaN不能使用indexOf()或 includes() 来查找值 NaN而 Set 可以保存此值。删除重复项:Set对象只存储惟一的值,如果不想有重复项存在相对于数组的一个显著优势因为数组需要额外的代码来处理重复。时间复杂度数组用来搜索元素的方法时间复杂度为0(N)。换句话说运行时间的增长速度与数据大小的增长速度相同。相比之下Set用于搜索、删除和插入元素的方法的时间复杂度都只有O(1)这意味着数据的大小实际上与这些方法的运行时间无关。具体解释与面试题强烈推荐阅读如何使用 Set 来提高JS代码的性能 - 知乎 (zhihu.com)其他APIhas()查询Set实例是否存在某元素(返回布尔值)const s new Set(); s.add(1).add(2).add(3); s.has(1); // truedelete() 删除某个元素s.delete(1);clear()清空Set实例s.clear(); Array.from(s); // []迭代for offor in不输出因为它不是以下标为索引的集合const s new Set([a,b,c,c]); for (var n of s) {console.log(n)} // a // b // cforEachs.forEach((t,i)console.log(t,i)) // a a // b b // c c // 输出了键值对的结构原生属性可以看见Set实例的三个属性返回了枚举的类数组。直接用Array.form转换Array.from(s.keys()) // [a, b, c] Array.from(s.entries()) // [[a, a],[b, b],[c, c]] Array.from(s.values()) // [a, b, c]附录-面试题题目给定一个整数无序数组和变量 sum如果存在数组中任意两项和使等于 sum 的值则返回true。否则,返回false。例如数组[3,5,1,4]和 sum 9函数应该返回true因为4 5 9。解题思路本题其实是为了找数组元素与sum的差值是否在数组里重复出现。const s new Set() arr.some(t {if (s.has(t)) {return true}s.add(sum-t);return fasle })简洁点写const findSum (arr, sum) arr.some((set n set.has(n) || !set.add(sum - n))(new Set));
http://www.hkea.cn/news/14301095/

相关文章:

  • wordpress登陆页面修改关键词排名优化报价
  • 南沙网站建设哪家好wordpress 全局播放器
  • 长沙知名网站建设三星网上商城官网
  • 网站类型分类网站核验单怎么下载
  • 石家庄行业网站建设网站建设分工表
  • 怎样做境外网站上赚钱如何在百度上搜到网站
  • 浏阳市商务局网站溪江农贸市场建设网站建设通知
  • 网站收录入口申请房产智能建站系统
  • 培训网站开发机构东莞怎么制作网站
  • 济南简单网站制作排名公司网站建设费用包括哪些内容
  • 电子商务网站开发分几个模块谷德设计网案例
  • 怎么做一个自己的网站网站登录密码怎么取消保存
  • 网站开发语言网站设置主页
  • 用angular做的网站石家庄最新大事
  • 网站建设和网站编辑是什么工作河南建设厅
  • 东营企业网站排名优化陕建云采电子商务平台
  • 网站开发与维护价格锡林浩特本地网站建设
  • 网站开发架设wordpress 页面开发教程视频
  • 公司网站制作企业火车头 wordpress发布
  • 广州网站推广找哪里建设企业网站初始必备的六大功能
  • wordpress 做音乐网站做网站骗钱
  • 建设部 网站个人网站成功案例
  • 自己做公司网站难吗服装网站建设美丽
  • 上海网安网站建设asp.net网站安装教程
  • 广州开发网站技术支持阳春县建设局网站
  • asp网站免费完整源码福田区南山区龙岗区
  • 可信网站查询江门网红打卡点
  • 浙江网站备案加急网站开发教程流程
  • 蚌埠的网站建设wordpress菜单调用
  • 深圳知名网站设计公司排名怎么建设QQ网站