直播網站程式原始碼,element el-menu,前端做選單搜尋
直播網站程式原始碼,element el-menu,前端做選單搜尋
方案一:遞迴+indexof
實現步驟: JS 實現樹形結構資料的模糊搜尋查詢,
即使父節點沒有,但子節點含有,父節點仍要返回。
/** * 遞迴tree關鍵詞搜尋 * * @param {key} 需要遞迴的key名 * @param {value} 需要搜尋查詢的關鍵字 * @param {treeList} 遍歷tree列表 * @return {saveList} 返回查詢陣列列表 */ function onFuzzyTreeList (key, value, treeList, saveList = []) { return new Promise((resolve, reject) => { treeList.forEach(item => { if (item[key].indexOf(value) > -1) { saveList.push(item); } else { if (item.children && item.children.length > 0) { const _reData = onFuzzyTreeList(key, value, item.children, saveList); if (_reData && _reData.length > 0) { saveList.push({ ...item, children: _reData }) } } } }) resolve(saveList) }) } // 呼叫 onFuzzyTreeList('name', '搜尋', treeList)
方案二:抽取1-2級資料重構(推薦)
1.這裡只會預設兩級資料的情況下
function onFuzzyTreeList(key, value, treeList) { // 所有一級導航組成的陣列 const firstArr = treeList.map((it) => ({ name: it.name, id: it.id, level: 1 })) // 所有二級導航組成的陣列 const secondArr = treeList.reduce((rd, it1) => { if (!it1.children?.length) return rd it1.children.forEach((it2) => { ;(it2.level = 2), (it2.firstId = it1.id) }) return [...rd, ...it1.children] }, []) // 一二級導航組成的陣列 const allArr = [...firstArr, ...secondArr] function search(key, val) { const arr = allArr.filter((it) => it[key].indexOf(val) != -1) const firstArrIds = [...new Set(arr.map((it) => it.firstId || it.id))] const firstArrResult = firstArr.filter((it) => firstArrIds.includes(it.id)) firstArrResult.forEach((it) => { it.children = arr.filter((it2) => it2.firstId == it.id) }) return firstArrResult } return search(key, value) }
方案三:遞迴+filter+indexof
/** @function 定義前端過濾函式 */ const filterTree = (treeArr, keywords) => { function findItem(arr) { let res = arr.filter((item) => { if (item.children && item.children.length > 0) { item.children = childFilter(item.children, keywords) console.log(item.children) } return item.name.indexOf(keywords) !== -1 //不一樣的過濾掉 }) return res } function childFilter(childArr, keywords) { let res = childArr.filter((item) => { // TODO:這裡後端說暫時只有2級,所以先預留一下遞迴邏輯 if (item.children && item.children.length > 0) { item.children = childFilter(item.children, keywords) return item.name.indexOf(keywords) !== -1 } }) return res } return findItem(treeArr) }
以上就是 直播網站程式原始碼,element el-menu,前端做選單搜尋,更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2943935/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播原始碼網站,點選分類調起選單欄並彈出原始碼網站
- 直播系統程式碼,常用搜尋中搜尋歷史,搜尋推薦功能
- 直播app原始碼,預設顯示搜尋框 保留搜尋條件APP原始碼
- 直播網站原始碼,Android中點選圖片放大的簡單方法網站原始碼Android
- 直播網站程式原始碼,FlowLayoutManager 流式佈局網站原始碼
- 網站搜尋功能lucene網站
- Element原始碼分析系列4-Radio(單選框)原始碼
- 直播網站程式原始碼,【openpyxl】只讀模式、只寫模式網站原始碼模式
- 直播網站原始碼,js動態追加 初始化下拉選項網站原始碼JS
- 成品直播原始碼,實現在平臺內部的搜尋原始碼
- 直播網站原始碼,centos7修改密碼網站原始碼CentOS密碼
- 線上直播系統原始碼,vue實現搜尋文字高亮功能原始碼Vue
- 直播軟體開發,實現模糊搜尋的程式碼分析
- 直播網站程式原始碼,採用Redis實現購物車功能網站原始碼Redis
- 網盤資源搜尋網站推薦網站
- 直播網站原始碼,點選EditText以外的區域,鍵盤隱藏消失網站原始碼
- 直播原始碼網站,點選圖片可進行任意方向旋轉功能原始碼網站
- 視訊直播原始碼,實現本地儲存搜尋歷史記錄原始碼
- python 寫的搜尋引擎 - 原始碼Python原始碼
- 直播網站原始碼,使用Scheduled做定時任務出現Autowired注入空指標網站原始碼指標
- 直播開發app,實時搜尋、搜尋引擎框APP
- 直播商城原始碼,PopupWindow選單在ListView中顯示原始碼View
- 成品直播原始碼推薦,Android 禁止下拉選單欄原始碼Android
- 直播平臺原始碼,可摺疊式選單欄原始碼
- 點選搜尋框清空搜尋提示文字
- 直播原始碼網站,任意更改底部圖示顏色原始碼網站
- 推薦幾個高效文章搜尋網站網站
- Element-UI radio、radio-group、radio-button 單選框原始碼UI原始碼
- 直播原始碼網站,對話方塊側滑出現刪除、已讀等選項原始碼網站
- 直播原始碼網站,點選分享按鈕,分享到各個渠道功能的實現原始碼網站
- 五款網盤資源搜尋網站推薦網站
- 單詞搜尋
- 線上直播系統原始碼,實現搜尋後介面顯示商品列表效果原始碼
- 影片直播原始碼,預設展開側邊欄選單原始碼
- 線上直播原始碼,開發一個下拉選單元件原始碼元件
- 直播原始碼網站,實現文字自動翻轉效果原始碼網站
- 直播網站原始碼,vue工具類,時間格式化網站原始碼Vue
- 直播網站原始碼,修改el-input邊框顏色網站原始碼