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

公司网站开发实训报告网站开发与设计实训

公司网站开发实训报告,网站开发与设计实训,建行网银登录,学电脑培训多少钱文章目录 方式1: ES6新语法方式2: 遍历 利用filter方式3: 使用 new Map() for循环方式4: 利用 hasOwnProperty总结 在github 查看该文章 方式1: ES6新语法 过滤出网页中不重复的html标签 结合去重知识点考查 […new Set([…document.querySelectorAll(‘*’)].map(vv.t… 文章目录 方式1: ES6新语法方式2: 遍历 利用filter方式3: 使用 new Map() for循环方式4: 利用 hasOwnProperty总结 在github 查看该文章 方式1: ES6新语法 过滤出网页中不重复的html标签 结合去重知识点考查 […new Set([…document.querySelectorAll(‘*’)].map(vv.tagName))] const arr [1, 1, 1, 17, true, true, false, false, true, a, {}, {},Symbol(1),Symbol(1)]function getUni(arr){return Array.from(new Set(arr)) } // 调用输出接口 发现有2个Symbol(1) // 他们是不相等的 ,所以这个去重方式还是可以的 getUni(arr) // [1, 1, 17, true, false, true, a, {…}, {…}, Symbol(1), Symbol(1)] // 空{}对象没有去重 (因为两个对象其实, // 引用不一样,所以也是不一样的. 后续方法我们研究可以去掉的)那么此方式可以对对象去重吗??? 我们一起来验证下!! const b{a:2} let arr1 [{a:1}, b, b, {a:3}]; //[{a:1},{a:2},{a:2},{a:3}] let set1 new Set(arr1); let newArr1 Array.from(set1); console.log(newArr1); // [{a:1},{a:2},{a:3}]//无法对象去重 let arr2 [{a:1}, {a:2}, {a:2}, {a:3}]; //[{a:1},{a:2},{a:2},{a:3}] let set2 new Set(arr2); let newArr2 Array.from(set2); console.log(newArr2); //[{a:1},{a:2},{a:2},{a:3}] 方式2: 遍历 利用filter const unique arr{return arr.filter((item ,index){// console.log(arr.indexOf(item))// indexOf()方法返回在数组中可以找到一个给定元素的第一个索引// 如果不存在则返回-1return arr.indexOf(item) index}) } // 使用 includes , indexOf 的思路大致一样都是判断,是否存在,没有就添加. // 使用filterindexOf 的方式 ,对象也没有去重方式3: 使用 new Map() for循环 const unique1 arr{const map new Map()const res []for(let i 0; iarr.length;i){if(!map.has(arr[i])){map.set(arr[i],true)res.push(arr[i])}}return res; }请注意为Map设置对象属性也是可以的但是可能引起大量的混乱。 下面我们来比较下 为Map设置对象属性方式 let wrongMap new Map() wrongMap[bla] blaa wrongMap[bla2] blaaa2console.log(wrongMap) // Map { bla: blaa, bla2: blaaa2 } // ...但是这样做的话它的行为会不符合预期:wrongMap.has(bla) // false wrongMap.delete(bla) // false console.log(wrongMap) // Map { bla: blaa, bla2: blaaa2 }正确的方式: let myMap new Map() myMap.set(bla,blaa) myMap.set(bla2,blaa2) console.log(myMap) // Map { bla blaa, bla2 blaa2 }myMap.has(bla) // true myMap.delete(bla) // true console.log(myMap) // Map { bla2 blaa2 }我们在控制器输入比较下,就比较直观 let wrongMap new Map() wrongMap[bla] blaa blaa wrongMap Map(0) {bla: blaa} wrongMap.has(bla) false wrongMap.set(a,aaa) Map(1) {a aaa} wrongMap Map(1) {a aaa}[[Entries]]0: {a aaa}key: avalue: aaabla: blaasize: (...)__proto__: Map wrongMap.has(a) true 方式4: 利用 hasOwnProperty const unique4 ( arr ) {let obj {}return arr.filter((item,curIndex,arr){let tempFlagif(typeof(item) symbol){tempFlag typeof(item) typeof(item) }else if(typeof(item) object){tempFlag typeof(item) JSON.stringify(item)}else{tempFlag typeof(item) item}console.log(tempFlag:${tempFlag})return obj.hasOwnProperty( tempFlag ) ? false : obj[tempFlag] true;})}// 这里利用给obj添加属性来去重. 是根据类型,去重的, // 也就是说 Symbol(1) Symbol(666) 或则 {}, {} 也只会保留一个. // 对symbol 去重,其实没有什么实际的意义, 而对象本来是引用类型,长得一样, // 其实地址也不一样,但想把内容一致的去掉,lodash有比较两对象内容是否一致的. // _.unionWith([arrays],[comparator]), // 指定哪几个字段作为去重条件 不然有点浪费性能 https://www.lodashjs.com/docs/lodash.unionWith可以看出使用set添加的 是在 [[Entries]] 里面的,并且有对应的索引 总结 本文列举几种在前端开发几种去重的方式
http://www.zqtcl.cn/news/894449/

相关文章:

  • 做网站收款支付宝接口廊坊市网站建设公司
  • 文档下载网站 建设做cpa用什么网站
  • 网站制作合同注意事项百度网页版电脑版
  • 怎样做模板网站手机营销型网站制作
  • 如何采集网站内容如何做网站导航栏的搜索引擎优化
  • 网站关键词排名外包织梦大气婚纱影楼网站源码
  • 网站建设执行力冠县哪里有做网站的
  • 免费网站推广咱们做网络营销推广的应用场景
  • 深圳正规网站制作哪家公司好做网站代理属于开设赌场罪吗
  • 江西宜春市建设局网站wordpress博客下载器
  • 汕头站扩建效果图微信怎么引流营销呢
  • 小学学校网站建设计划wordpress博客示例
  • 德邦公司网站建设特点万网是什么
  • 天津武清网站开发广东省建筑网站
  • 青岛做外贸网站哪家好佛山网站建设哪家好
  • 网站关键词设置技巧wordpress 获得参数
  • 程序网站开发搜索引擎有哪些技巧
  • 网站模板上传教程响应式网站建设免费
  • 网站建设与设计ppt模板wordpress调用大全
  • wordpress信息修改佛山网站优化如何
  • 最权威的排行榜网站招网站开发人员
  • 北京通州住房和城乡建设部网站网站获取访客手机号源码
  • 网站开发与建设网站程序基础
  • 网站建设属于什么税php网站建设全程实例
  • 做网站语言排名2018淄博市沂源县建设局网站
  • 腾冲网站建设哪个电商平台最好
  • 重点实验室网站建设宁波seo优化服务
  • 怎么用手机做刷会员网站网页设计指什么
  • 小企业网站建设多少钱网页设计图片剧中
  • 新乐做网站优化如何做二级域名子目录网站