<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                * **平扁化,解決flat()兼容問題** ***** ``` export function flattenDeep(arr?=?[])?{ return arr.reduce((acc,?val)?=>Array.isArray(val)???acc.concat(flattenDeep(val))?:?acc.concat(val),?[]) } ``` * **深拷貝** ***** 了解更多,請點擊[這里](http://www.hmoore.net/vvmily_king/vvmily/2306112) ``` export function deepClone(obj) { var newObj = Array.isArray(obj) ? [] : {}; for(var key in obj){ if(obj[key] && typeof obj[key] === 'object'){ newObj[key] = deepClone(obj[key]) }else{ newObj[key] = obj[key] } } return newObj; } ``` * **解析URL中的參數** ``` export const parseUrlParams =(params) => { let url = params.substring(params.indexOf("?")); //獲取url中"?"符后的字串 let result = {}; if?(url.indexOf("?")?!=-1)?{ let str = url.substr(1); let strs = str.split("&"); for?(leti = 0; i < strs.length; i++)?{ result[strs[i].split("=")[0]]?= unescape(strs[i].split("=")[1]); } } return result; } ``` * **一維數組轉樹結構** ``` /** ?*?一維數組轉樹結構 ?*?@param?{*}?data?一維數組 ?*?@param?{*}?id?當前id ?*?@param?{*}?pid?父級關聯id ?*?@param?{*}?children?子級數組鍵 ?*?@returns?樹形Array ?*/ export?function?toTree( ??data, ??id?=?'menuId', ??pid?=?'parentId', ??children?=?'children' )?{ ??const?result?=?[] ??if?(!Array.isArray(data))?{ ????return?result ??} ??data.forEach(item?=>?{ ????delete?item[children] ??}) ??const?map?=?{} ??data.forEach(item?=>?{ ????map[item[id]]?=?item ??}) ??data.forEach(item?=>?{ ????const?parent?=?map[item[pid]] ????item.parentName?=?(parent?||?{}).menuName ????item.parentId?=?(parent?||?{}).menuId ????if?(parent)?{ ??????(parent[children]?||?(parent[children]?=?[])).push(item) ????}?else?{ ??????result.push(item) ????} ??}) ??return?result } ``` * **查找數組樹形數組一級最后一級的第一項** ``` /** ?*?查找數組樹形數組一級最后一級的第一項 ?*?@param?{*}?arr?樹形數組 ?*?@param?{*}?children?樹下級 ?*?@returns?Array ?*/ export?function?arrayFirstById(arr?=?[],?children?=?'children')?{ ??return?arr.reduce((pre,?cur)?=>?{ ????pre.push(cur) ????return?pre.concat( ??????cur[children]?&&?cur[children].length???arrayFirstById(cur[children])?:?[] ????) ??},?[]) } ``` * **查找樹結構,當前id的所有上級id** ``` /** ?*?從下往上查找 ?*?查找樹結構,當前id的所有上級id ?*?@param?{*}?treeData?樹結構?數組,必傳 ?*?@param?{*}?id?當前id?,必傳 ?*?@param?{*}?key?與id相匹配的鍵 ?*?@param?{*}?children?樹結構下級 ?*?@returns?Array ?*/ export?function?findTreeParents( ??treeData, ??id, ??key?=?'id', ??children?=?'children' )?{ ??if?(treeData.length?===?0)?return ??for?(let?i?=?0;?i?<?treeData.length;?i++)?{ ????if?(treeData[i][key]?===?id)?{ ??????return?[] ????}?else?{ ??????if?(treeData[i][children])?{ ????????const?res?=?findTreeParents(treeData[i][children],?id) ????????if?(res?!==?undefined)?{ ??????????return?res.concat(treeData[i]) ????????} ??????} ????} ??} } ``` * **找樹結構,當前id的所有上級id** ``` /** ?*?通過子級parentId與父級id相對應,從上往下查找 ?*?找樹結構,當前id的所有上級id ?*?@param?{*}?treeData?樹結構?數組,必傳 ?*?@param?{*}?id?當前id?,必傳 ?*?@param?{*}?option?配置項 ?*?@returns?Array ?*/ export?function?treeFindParentById(treeData,?id,?option)?{ ??const?{?key,?children,?parentId?}?=?{ ????key:?'id', ????children:?'children', ????parentId:?'parentId', ????...option ??} ??const?allParents?=?[] ??if?(treeData.length?===?0)?{ ????return?[] ??} ??const?findParents?=?(data,?id)?=>?{ ????if?(!id)?return ????data.forEach((item,?index)?=>?{ ??????if?(item[key]?===?id)?{ ????????allParents.unshift(item) ????????findParents(treeData,?item[parentId]) ??????}?else?{ ????????if?(item.children)?{ ??????????findParents(item[children],?id) ????????} ??????} ????}) ??} ??findParents(treeData,?id) ??return?allParents } ``` 工具類驗證:https://www.helloweba.net/javascript/639.html
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看