日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ES6基础4(数据结构)-学习笔记

發(fā)布時間:2024/1/23 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES6基础4(数据结构)-学习笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • ES6基礎(chǔ)4(數(shù)據(jù)結(jié)構(gòu))-學(xué)習(xí)筆記
      • set
      • map
      • symbol

ES6基礎(chǔ)4(數(shù)據(jù)結(jié)構(gòu))-學(xué)習(xí)筆記

set

//set 數(shù)據(jù)結(jié)構(gòu) 類似數(shù)組 成員信息唯一性var s = new Set();//添加數(shù)據(jù) add()s.add(1).add('2').add(2);//添加數(shù)據(jù) 另一種寫法var s2 = new Set([1,2,3,4,5]);var arr = [1,2,3,4,5];var s3 = new Set(arr);//刪除 delete() 按名稱來刪除 返回true falsevar s2 = new Set([1,'2',2,3,4,5]);s2.delete('2');//刪除所有 clear() 沒有返回值//has() 匹配是否存在 返回true false 按名稱來匹配var s2 = new Set([1,'2','a',3,4,5]);//s2.has('2'); var a = 'a';if(s2.has(a)){console.log('ok')}else {console.log('error')};//屬性 size 長度var s2 = new Set([1,'2','a',3,4,5]);console.log(s2.size) //6//數(shù)組去重var s5 = [1,2,2,4,5,4,6,3,6,3,6,7,3,3,5,4,3,6,7,3];//es6var a = [...new Set(s5)];//es5function f(){var a = [];for(var i=0;i<s5.length;i++){if(a.indexOf(s5[i])==-1){ //沒有匹配成功a.push(s5[i])} };return a;}f();//es5 另一種方式function f2(){for(var i=0;i<s5.length;i++){for(var j=i+1;j<s5.length;j++){if(s5[i]==s5[j]){s5.splice(j,1);j--;}}};return s5;}f2();//類型轉(zhuǎn)換//set 轉(zhuǎn) 數(shù)組var s5 = [1,2,2,4,5,4,6,3,6,3,6,7,3,3,5,4,3,6,7,3];var a = [...new Set(s5)];var a2 = Array.from(new Set(s5))//擴展//求出大于100的數(shù)據(jù)且去重var arr = [20,32,23,15,63,543,24,26,3,266,34,246,242,22,123,123,266,246,345,234,123];//分析//1、求出大于100var a = arr.filter(item=>item>100);//2、去重var b = new Set(a);//3、類型轉(zhuǎn)換//[...b]//Array.from(b)//簡化var c = [...new Set(arr.filter(item=>item>100))];var c = Array.from(new Set(arr.filter(item=>item>100)));// var a = arr.filter(function(item,index){// return item >100// });// var a = arr.filter(item=> item >100)//求二組數(shù)據(jù)的 并集 交集 差集var arr1 =[2,3,5,2,5,7,3,5,36,4];var arr2 = [8,9,4,1,2,3,7,3];//并集 且去重var a = [...new Set([...arr1,...arr2])];//交集//分析//var a = arr1.filter(function(item){// return arr2.indexOf(item)!=-1;// return new Set(arr2).has(item);//})var a = [...new Set(arr1.filter(item=>arr2.indexOf(item)!=-1))]; //法1var a = [...new Set(arr1.filter(item=>new Set(arr2).has(item)))]; //法2//差集var a = [...new Set(arr1.filter(item=>!new Set(arr2).has(item)))]; //法2

map

//Map 類似于object 鍵值對 map的鍵是可以是其它的類型var m = new Map();//添加m.set('name','abc').set('id',1);var a = {msg:'abc'};m.set(a,'11111');m.get(a); // 11111//方法和屬性// set(); //添加// get(); //獲取// has(); //是否匹配// delete(); //刪除單個 m.delete("id")// clear(); //刪除全部// size //長度添加數(shù)據(jù) 另一種寫法var m = new Map([['a',1],['b',2],['c',3]]);//循環(huán) for...of 替代for ...in forEach()//可循環(huán)是array set map 但不能是object// keys():返回鍵名的遍歷器 m.keys() //abc// values():返回鍵值的遍歷器 m.values() // 123// entries():返回鍵值對的遍歷器for(var v of m.keys()){console.log(v)};for(var v of m.values()){console.log(v)}for(var [k,v] of m){console.log(v)}//類型轉(zhuǎn)換//Object轉(zhuǎn)數(shù)組var obj = {'a':1,'b':2,'c':3};//[a,b,c] [1,2,3]Object.keys(obj); //es5 [a,b,c] Object.values(obj); //es5 [1,2,3]//map轉(zhuǎn)數(shù)組var m = new Map([['a',1],['b',2],['c',3]]);[...m.keys()] ;//["a", "b", "c"][...m.values()];[...m]; //[['a',1],['b',2],['c',3]]//map轉(zhuǎn)為objectvar m = new Map([['a',1],['b',2],['c',3]]);var obj2 = {};for(let [k,v] of m){ //k=====a b c | v==== 1,2,3obj2[k] = v; //obj2['a'] = 1 | obj2['b'] = 2};console.log(obj2) //{a: 1, b: 2, c: 3}//object 轉(zhuǎn)為 mapvar obj3 = {a: 1, b: 2, c: 3};var m2 = new Map();for(let k in obj3){m2.set(k,obj3[k])};console.log(m2)

symbol

//symbol es6 引入的新的類型 表示獨一無二的值//如果添加的屬性名出現(xiàn)重復(fù),如何保證屬性名的唯一性,解決屬性名的沖突var obj = {id:1,id:2,id:3,name:123};console.log(obj) //{id:3,name:123}//聲明var s = Symbol();console.log(s);//獨一無二的值var s2 = Symbol();var s3 = Symbol();console.log(s2==s3); //false//可以接受一個字符串作為參數(shù) symbol的值var s2 = Symbol('name'); var s3 = Symbol('name');console.log(s2==s3); //false//symbol定義一個名稱,可以通過名稱來獲取var x = Symbol.for('x'); var x2 = Symbol('x'); Symbol.keyFor(x);Symbol.keyFor(x2)//實際的應(yīng)用var o = {};var s4 = Symbol();o[s4] = 'abc';console.loe(o)//第二種寫法var o = {[s4]:'xyz'}//demovar a = Symbol();var o ={[a] :100,a:200};o.a; //200o['a'];//200o[a]; //100var _name = Symbol('name');var _age = Symbol();var o = {[_name]:200,[_age]:100,c:200,d:100};// o[_name];// o[_age];Object.keys(o) //[c,d]//注意 Object.keys for...in 不支持for(let k in o ){console.log(k) //c,d}

總結(jié)

以上是生活随笔為你收集整理的ES6基础4(数据结构)-学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。