<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • ES6——數(shù)組擴展 ... Array.from() Array.of() flat() reduce()

    2021-9-29    前端達(dá)人

    1.擴展運算符…

    ES6——擴展運算符…

    2.Array.from()

    將兩類對象轉(zhuǎn)為真正的數(shù)組:類數(shù)組(querrySelectAll)和可遍歷(iterable)的對象(包括 ES6 新增的數(shù)據(jù)結(jié)構(gòu) Set 和 Map)

    類數(shù)組

    1.賦給length屬性的對象

     //將類數(shù)組轉(zhuǎn)化為真正的數(shù)組 let k={ 0:'a', 1:'b', length:2 //沒有l(wèi)ength屬性就不行 } console.log(Array.from(k)); //['a', 'b'] 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.字符串也有l(wèi)ength屬性,它也是類數(shù)組

     let str='hello'; console.log(Array.from(str)); // ['h', 'e', 'l', 'l', 'o'] 
    
    • 1
    • 2

    3.參數(shù)如果是真正的數(shù)組 則返回一個全新數(shù)組

     let s1=[1,2,3]; let s2=Array.from(s1); console.log(s2==s1); //false 
    
    • 1
    • 2
    • 3

    3.Array.of()

    一組值,轉(zhuǎn)換為數(shù)組

    Array.of(3, 11, 8) // [3,11,8] Array.of(3) // [3] Array.of(3).length // 1 
    
    • 1
    • 2
    • 3

    這個方法的主要目的,是彌補數(shù)組構(gòu)造函數(shù)Array()的不足。因為參數(shù)個數(shù)的不同,會導(dǎo)致Array()的行為有差異。

    只有當(dāng)參數(shù)個數(shù)不少于 2 個時,Array()才會返回由參數(shù)組成的新數(shù)組

    Array() // [] Array(3) // [, , ,] Array(3, 11, 8) // [3, 11, 8] 
    
    • 1
    • 2
    • 3

    4.find() 和 findIndex()

    find方法,用于找出第一個符合條件的數(shù)組成員

     var result1=[1,2,3,4].find(function (item) { return item%2==0; }) console.log(result1); //2 
    
    • 1
    • 2
    • 3
    • 4

    findIndex方法,返回第一個符合條件的數(shù)組成員的位置。
    如果所有成員都不符合條件,則返回-1

     var result1=[1,2,3,4].findIndex(function (item) { return item%2==0; }) console.log(result1); //1 
    
    • 1
    • 2
    • 3
    • 4

    5.fill() 填充數(shù)組

    使用給定值,填充一個數(shù)組

    console.log(new Array(5).fill('a')); //['a', 'a', 'a', 'a', 'a'] 
    
    • 1

    fill方法還可以接受第二個和第三個參數(shù),用于指定填充的起始位置和結(jié)束位置。

    ['a', 'b', 'c'].fill(7, 1, 2) // ['a', 7, 'c'] 
    
    • 1

    6.數(shù)組實例的 entries(),keys() 和 values()

    Set,Map,Object中都有這些方法

    entries(),keys()和values()——用于遍歷數(shù)組。
    它們都返回一個遍歷器對象,可以用for…of循環(huán)進行遍歷
    唯一的區(qū)別是keys()是對鍵名的遍歷、values()是對鍵值的遍歷,entries()是對鍵值對的遍歷。

     let yes=[1,2,3,4]; console.log(yes.keys()); //Array Iterator {} console.log(yes.values()); //Array Iterator {} console.log(yes.entries()); //Array Iterator {} 
    
    • 1
    • 2
    • 3
    • 4
     let yes=[1,2,3,4]; for(let key of yes.keys()){ console.log(key); //0 1 2 3 } for(let key of yes.values()){ console.log(key); //1 2 3 4 } for(let [key,value] of yes.entries()){ console.log(key,value); //0 1 //1 2 //2 3 //3 4 } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    7.includes()

    console.log([1, 2, 3].includes(1)); //true console.log([1, 2, 3].includes(1,1)); //false 從1號索引開始找 
    
    • 1
    • 2

    8.flat()

    將嵌套的數(shù)組“拉平”,變成一維的數(shù)組。
    該方法返回一個新數(shù)組,對原數(shù)據(jù)沒有影響

    //默認(rèn)只能拉平一層 console.log([1, 2, [3, 4]].flat()); //[1, 2, 3, 4] //如果拉平多層 設(shè)置層數(shù) console.log([1, 2, [3, [4, 5]]].flat(2)); // [1, 2, 3, 4, 5] //如果層數(shù)太多 設(shè)置Infinity console.log([1, 2, [3, 4, [5, 6, [7, 8]]]].flat(Infinity)); //[1, 2, 3, 4, 5, 6, 7, 8] 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    9.reduce()

    reduce() 方法接收一個函數(shù)作為累加器,數(shù)組中的每個值(從左到右)開始縮減,最終計算為一個值。對空數(shù)組是不會執(zhí)行回調(diào)函數(shù)的。

    1.計算數(shù)組總和

    var num = [1,2,3,4,5]; var res = num.reduce(function(total,num){ return total+num; //return total + Math.round(num);//對數(shù)組元素四舍五入并計算總和 },0); console.log(res); //15 //num.reduce((total,num) => total += num, 0); //沒有初始值initialValue(即上面例子中的0),當(dāng)數(shù)組為0時會拋出異常提示reduce函數(shù)沒有初始值,所以為兼容性一般加上initialValue 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2.合并二維數(shù)組

    var red = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) { return a.concat(b); }, []); console.log(red); //[0, 1, 2, 3, 4, 5] 
    
    • 1
    • 2
    • 3
    • 4

    3.統(tǒng)計一個數(shù)組中有多少個不重復(fù)的單詞
    reduce()函數(shù)










    藍(lán)藍(lán)設(shè)計建立了UI設(shè)計分享群,每天會分享國內(nèi)外的一些優(yōu)秀設(shè)計,如果有興趣的話,可以進入一起成長學(xué)習(xí),請掃碼藍(lán)小助,報下信息,藍(lán)小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務(wù)合作,也請與我們聯(lián)系。

    分享此文一切功德,皆悉回向給文章原作者及眾讀者.

    轉(zhuǎn)自:csdn
    免責(zé)聲明:藍(lán)藍(lán)設(shè)計尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問題,請及時與我們?nèi)〉寐?lián)系,我們立即更正或刪除。

    藍(lán)藍(lán)設(shè)計m.skdbbs.com )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 平面設(shè)計服務(wù)

    日歷

    鏈接

    個人資料

    存檔

    主站蜘蛛池模板: 国产三级久久久精品麻豆三级| 国产成人精品高清不卡在线| 久久国产精品成人免费| 日本五区在线不卡精品| 国产成人精品久久亚洲高清不卡 | 久久亚洲欧美国产精品| 麻豆精品国产自产在线观看一区| 91精品国产综合久久香蕉| 99精品热这里只有精品| 亚洲爆乳精品无码一区二区三区| 久久国产成人精品国产成人亚洲| 91久久精品视频| 99国产精品一区二区| 日韩精品极品视频在线观看免费| 久久露脸国产精品| 国产欧美在线观看精品一区二区 | www.99精品| 精品9E精品视频在线观看| 亚洲精品中文字幕乱码三区| 青草国产精品视频。| 久久99精品久久久久久噜噜| 国产亚洲精品AA片在线观看不加载| 99久久国产综合精品网成人影院| 国产精品久久毛片完整版| …久久精品99久久香蕉国产| 国产精品视频第一区二区三区| 精品一区二区三区免费毛片爱 | 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 国产午夜亚洲精品国产成人小说 | 久久国产乱子伦精品免费强| 国产精品久久自在自线观看| 国产精品久久久久久久| aaa级精品久久久国产片| 国产日韩一区在线精品欧美玲| 99精品高清视频一区二区| 国产精品久久成人影院| 四虎国产精品免费久久5151| 51精品资源视频在线播放| 99久久99久久精品国产片| 国产精品一区三区| 久久激情亚洲精品无码?V|