<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          6種方式實(shí)現(xiàn)JavaScript數(shù)組扁平化(flat)方法的總結(jié)

          共 990字,需瀏覽 2分鐘

           ·

          2021-07-05 02:17

          需求:
          多維數(shù)組=>一維數(shù)組 
          let arr = [1, [2, [3, [4, 5]]], 6];let str = jsON.stringify(ary);

          解決方案:

          面對(duì)這個(gè)需求,我們有6種處理方式,希望這些方式方法可以給你一些啟發(fā)。

          第1種處理:直接的調(diào)用

          arr.flat(Infinity);

          注意:flat和flatMap方法為ES2019(ES10)方法,目前還未在所有瀏覽器完全兼容。

          第2種處理

          str.replace(/(\[\]))/g, '').split(',');

          第3種處理

          str = str.replace(/(\[\]))/g, '');str = '[' + str + ']';var ary = jsON.parse(str);

          第4種處理:遞歸處理

          let result = [];let fn = function(ary) {  for(let i = 0; i < ary.length; i++) }{    let item = ary[i];    if (Array.isArray(ary[i])){      fn(item);    } else {      result.push(item);    }  }}

          第5種處理:用 reduce 實(shí)現(xiàn)數(shù)組的 flat 方法

          function flatten(ary) {  return ary.reduce((pre, cur) => {    return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);  })}let ary = [1, 2, [3, 4], [5, [6, 7]]]console.log(ary.MyFlat(Infinity))

          第6種處理:擴(kuò)展運(yùn)算符

          while (ary.some(Array.isArray)) {  ary = [].concat(...ary);}

          總結(jié)


          這6種方式,你學(xué)會(huì)了嗎?

          學(xué)習(xí)更多技能

          請(qǐng)點(diǎn)擊下方公眾號(hào)


          瀏覽 61
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91免费看操逼 | AV 无码 白丝 软件 | 频逼特逼在线视频 | 久久久久久成人无码 | 嫩草 www天堂资源在线观看 |