精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

你可能會用到的JS工具函數

開發 開發工具
我們今天聊聊你可能會用到的JS工具函數,你能用到幾個?

[[403909]]

Vue3在script標簽中引入

  1. const oDiv = document.createElement('div'); 
  2.     const oScript = document.createElement('script'); 
  3.     oDiv.setAttribute('id''app'); 
  4.     oScript.type = 'text/javascript'
  5.     oScript.src = "https://unpkg.com/vue@next"
  6.     document.body.appendChild(oDiv); 
  7.     document.body.appendChild(oScript); 
  8.  
  9.  
  10.     window.onload = function () { 
  11.       const { createApp,ref } = Vue; 
  12.       const App = { 
  13.         template: ` 
  14.             <div>{{msg}}</div> 
  15.             <p>{{count}}</p> 
  16.             `, 
  17.         data(){ 
  18.               return { 
  19.                 msg:'maomin' 
  20.               } 
  21.         }, 
  22.         setup(){ 
  23.           let count = ref(0); 
  24.  
  25.           return { 
  26.             count 
  27.           } 
  28.         } 
  29.     } 
  30.      createApp(App).mount('#app'); 
  31.     } 

遞歸尋找操作(已刪除指定項為例)

  1. // 遞歸尋找 
  2.     recursion(data, id) { 
  3.       let result; 
  4.       if (!data) { 
  5.         return
  6.       } 
  7.       for (let i = 0; i < data.length; i++) { 
  8.         let item = data[i]; 
  9.         if (item.breakerId === id) { 
  10.           result = item; 
  11.           data.splice(i, 1); 
  12.           break; 
  13.         } else if (item.childrenBranch && item.childrenBranch.length > 0) { 
  14.           result = this.recursion(item.childrenBranch, id); 
  15.           if (result) { 
  16.             return result; 
  17.           } 
  18.         } 
  19.       } 
  20.  
  21.       return result; 
  22.     }, 

遞歸數組,將數組為空設為undefined

  1. function useTree(data) { 
  2.        for (let index = 0; index < data.length; index++) { 
  3.          const element = data[index]; 
  4.          if (element.childrenBranch.length < 1) { 
  5.            element.childrenBranch = undefined; 
  6.          } else { 
  7.            useTree(element.childrenBranch); 
  8.          } 
  9.        } 
  10.        return data; 
  11.      } 

數組對象中相同屬性值的個數

  1. group(arr) { 
  2.       var obj = {}; 
  3.       if (Array.isArray(arr)) { 
  4.         for (var i = 0; i < arr.length; ++i) { 
  5.           var isNew = arr[i].isNew; 
  6.           if (isNew in obj) obj[isNew].push(arr[i]); 
  7.           else obj[isNew] = [arr[i]]; 
  8.         } 
  9.       } 
  10.       return obj; 
  11.     }, 
  12.     max(obj) { 
  13.       var ret = 0; 
  14.       if (obj && typeof obj === "object") { 
  15.         for (var key in obj) { 
  16.           var length = obj[key].length; 
  17.           if (length > ret) ret = length; 
  18.         } 
  19.       } 
  20.       return ret; 
  21.     }, 
  22. var data = [ 
  23.     { 
  24.      addr: "1"
  25.      isNew: false
  26.     }, 
  27.     { 
  28.      addr: "2"
  29.      isNew: false
  30.     } 
  31. max(group(data) // 2 

檢測版本是vue3

  1. import { h } from 'vue'
  2. const isVue3 = typeof h === 'function'
  3. console.log(isVue3) 

檢測數據對象中是否有空對象

  1. let arr = [{},{name:'1'}] 
  2. const arr = this.bannerList.filter(item => 
  3.        item == null || item == '' || JSON.stringify(item) == '{}' 
  4. ); 
  5.  console.log(arr.length > 0 ? '不通過' : '通過'

深拷貝

  1.  /* @param {*} obj 
  2.  * @param {Array<Object>} cache 
  3.  * @return {*} 
  4.  */ 
  5. function deepCopy (obj, cache = []) { 
  6.   // just return if obj is immutable value 
  7.   if (obj === null || typeof obj !== 'object') { 
  8.     return obj 
  9.   } 
  10.  
  11.   // if obj is hit, it is in circular structure 
  12.   const hit = find(cache, c => c.original === obj) 
  13.   if (hit) { 
  14.     return hit.copy 
  15.   } 
  16.  
  17.   const copy = Array.isArray(obj) ? [] : {} 
  18.   // put the copy into cache at first 
  19.   // because we want to refer it in recursive deepCopy 
  20.   cache.push({ 
  21.     original: obj, 
  22.     copy 
  23.   }) 
  24.  
  25.   Object.keys(obj).forEach(key => { 
  26.     copy[key] = deepCopy(obj[key], cache) 
  27.   }) 
  28.  
  29.   return copy 
  30.  
  31. const objs = { 
  32.     name:'maomin'
  33.     age:'17' 
  34.  
  35. console.log(deepCopy(objs)); 

h5文字轉語音

  1. speech(txt){ 
  2.     var synth = null
  3.     var msg = null
  4.     synth = window.speechSynthesis; 
  5.     msg = new SpeechSynthesisUtterance(); 
  6.     msg.text = txt; 
  7.     msg.lang = "zh-CN"
  8.     synth.speak(msg); 
  9.     if(window.speechSynthesis.speaking){ 
  10.       console.log("音效有效"); 
  11.      } else { 
  12.      console.log("音效失效"); 
  13.      } 
  14.  } 

模糊搜索

  1. recursion(data, name) { 
  2.             let result; 
  3.             if (!data) { 
  4.                 return
  5.             } 
  6.             for (var i = 0; i < data.length; i++) { 
  7.                 let item = data[i]; 
  8.                 if (item.name.toLowerCase().indexOf(name) > -1) { 
  9.                     result = item; 
  10.                     break; 
  11.                 } else if (item.children && item.children.length > 0) { 
  12.                     result = this.recursion(item.children, name); 
  13.                     if (result) { 
  14.                         return result; 
  15.                     } 
  16.                 } 
  17.             } 
  18.             return result; 
  19.         }, 
  20.         onSearch(v) { 
  21.             if (v) { 
  22.                 if (!this.recursion(this.subtable, v)) { 
  23.                     this.$message({ 
  24.                         type: 'error'
  25.                         message: '搜索不到'
  26.                     }); 
  27.                 } else { 
  28.                     this.tableData = [this.recursion(this.subtable, v)]; 
  29.                 } 
  30.             } 
  31.         }, 

input 數字類型

  1.   <el-input 
  2.                    v-model.number="form.redVal" 
  3.                    type="number" 
  4.                    @keydown.native="channelInputLimit" 
  5.                    placeholder="請輸入閾值設定" 
  6.                    maxlength="8" 
  7. ></el-input> 
  8.  
  9.    channelInputLimit(e) { 
  10.        let key = e.key
  11.        // 不允許輸入‘e‘和‘.‘ 
  12.        if (key === 'e' || key === '.') { 
  13.            e.returnValue = false
  14.            return false
  15.        } 
  16.        return true
  17.    }, 

排序(交換位置)

  1. const list = [1,2,3,4,5,6]; 
  2.     function useChangeSort (arr,oldIndex,newIndex){ 
  3.         const targetRow = arr.splice(oldIndex, 1)[0]; 
  4.         const targetRow1 = arr.splice(newIndex, 1)[0]; 
  5.         arr.splice(newIndex, 0, targetRow); 
  6.         arr.splice(oldIndex, 0, targetRow1); 
  7.         return arr 
  8.     } 
  9.     console.log(useChangeSort(list,5,0)); // [6, 2, 3, 4, 5, 1] 

格式化時間

  1. /** 
  2.  * Parse the time to string 
  3.  * @param {(Object|string|number)} time 
  4.  * @param {string} cFormat 
  5.  * @returns {string | null
  6.  */ 
  7. export function parseTime(time, cFormat) { 
  8.     if (arguments.length === 0 || !time) { 
  9.         return null
  10.     } 
  11.     const format = cFormat || '{y}-{m}-ooamyea {h}:{i}:{s}'
  12.     let date
  13.     if (typeof time === 'object') { 
  14.         date = time
  15.     } else { 
  16.         if (typeof time === 'string') { 
  17.             if (/^[0-9]+$/.test(time)) { 
  18.                 // support "1548221490638" 
  19.                 time = parseInt(time); 
  20.             } else { 
  21.                 // support safari 
  22.                 // https://stackoverflow.com/questions/4310953/invalid-date-in-safari 
  23.                 time = time.replace(new RegExp(/-/gm), '/'); 
  24.             } 
  25.         } 
  26.  
  27.         if (typeof time === 'number' && time.toString().length === 10) { 
  28.             time = time * 1000; 
  29.         } 
  30.         date = new Date(time); 
  31.     } 
  32.     const formatObj = { 
  33.         y: date.getFullYear(), 
  34.         m: date.getMonth() + 1, 
  35.         d: date.getDate(), 
  36.         h: date.getHours(), 
  37.         i: date.getMinutes(), 
  38.         s: date.getSeconds(), 
  39.         a: date.getDay() 
  40.     }; 
  41.     const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { 
  42.         const value = formatObj[key]; 
  43.         // Note: getDay() returns 0 on Sunday 
  44.         if (key === 'a') { 
  45.             return ['日''一''二''三''四''五''六'][value]; 
  46.         } 
  47.         return value.toString().padStart(2, '0'); 
  48.     }); 
  49.     return time_str; 

本文轉載自微信公眾號「前端歷劫之路」,可以通過以下二維碼關注。轉載本文請聯系前端歷劫之路公眾號。

 

責任編輯:武曉燕 來源: 前端歷劫之路
相關推薦

2011-08-31 16:01:33

2021-08-06 07:55:55

黑客工具網站臨時手機號

2015-04-08 09:54:41

OpenStack資源私有云部署

2020-07-06 07:48:16

MySQL細節SQL

2018-07-10 11:05:18

開發者技能命令

2020-12-08 05:56:51

JS工具函數

2018-07-10 10:45:00

規范Commit項目

2016-03-16 11:20:47

2020-10-08 18:14:15

碼農Git命令

2025-06-20 08:14:55

2020-03-09 10:10:02

AI 數據人工智能

2017-03-23 16:03:01

2022-04-24 10:51:57

Python漏洞

2010-06-21 10:34:03

職場信號被炒

2014-02-18 10:59:52

nftablesLinux 3.13

2017-11-23 11:56:00

2017-11-21 10:15:00

2020-10-13 08:40:01

CSS多行多列布局

2020-09-01 14:17:03

WindowsDefender微軟

2019-03-22 08:00:01

Git命令GitHub
點贊
收藏

51CTO技術棧公眾號

欧美性色黄大片手机版| 韩国三级中文字幕hd久久精品| 91精品国产色综合久久不卡电影| 一区不卡字幕| 国产丝袜视频在线观看| 精品电影一区| 亚洲一区第一页| 老司机久久精品| 免费看电影在线| 99riav久久精品riav| 国产精品黄页免费高清在线观看| 动漫精品一区二区三区| 99久久er| 亚洲线精品一区二区三区| 久久亚洲综合网| 中文字幕免费观看视频| 欧美成人午夜| 亚洲天堂成人在线视频| 天天操天天爱天天爽| 国产三级在线播放| 26uuu国产在线精品一区二区| 国产精品99免视看9| 欧美日韩在线国产| 精品国产视频| 亚洲第一区第二区| 午夜国产一区二区三区| 91福利区在线观看| 国产婷婷一区二区| av电影成人| 日韩免费在线视频观看| 偷拍欧美精品| 亚洲欧美色图片| 婷婷激情四射五月天| 精品国产99久久久久久| 久久这里只有精品视频网| 亚洲自拍偷拍色片视频| 少妇久久久久久久| 亚洲精品系列| 欧美巨猛xxxx猛交黑人97人| 漂亮人妻被黑人久久精品| 成人午夜在线| 欧美午夜片欧美片在线观看| 欧美精品在欧美一区二区| 91在线高清| 久久视频一区二区| 国产精品日韩二区| 中文字幕av在线免费观看| 亚洲看片一区| 久久久久久高潮国产精品视| 午夜剧场免费在线观看| 精品一区电影| 亚洲天堂第一页| 菠萝菠萝蜜网站| 97视频一区| 日韩一区二区三区四区五区六区| 黄色片在线免费| 日本在线视频网址| 亚洲蜜桃精久久久久久久| 亚洲午夜精品福利| 国内三级在线观看| 久久亚洲综合av| 精品久久久久久乱码天堂| 亚洲不卡免费视频| 国产一区中文字幕| 91九色国产在线| 国产精品无码免费播放| 免费国产亚洲视频| 国产欧美日韩专区发布| 中文字幕一区二区免费| 日韩中文字幕区一区有砖一区| 欧美亚洲第一页| av大片免费在线观看| 午夜久久tv| 欧美精品在线免费播放| 久艹视频在线观看| 亚洲国产一区二区三区a毛片 | 一区二区三区蜜桃| 免费观看国产视频在线| 超碰在线观看免费| 国产精品五月天| 亚洲一卡二卡三卡| 老司机在线永久免费观看| 中文字幕一区二区三区不卡在线| 中文字幕一区二区三区乱码 | 寂寞少妇一区二区三区| 成人免费淫片视频软件| 97精品久久人人爽人人爽| 久久9热精品视频| 97久久精品午夜一区二区| 性xxxxbbbb| 中文字幕乱码一区二区免费| 久久久无码中文字幕久...| 黄色视屏在线免费观看| 欧美日韩视频在线观看一区二区三区 | 久久亚洲AV无码专区成人国产| 日韩精品欧美| 欧美极品少妇xxxxⅹ裸体艺术| 国产精品一区二区三区四| 免费观看成人鲁鲁鲁鲁鲁视频| 成人毛片网站| av中文在线| 午夜精品久久久久久| 奇米影音第四色| 国产精品网站在线看| 中文字幕日韩视频| 日韩男人的天堂| 国产伦精品一区二区三区免费迷| 欧美精品人人做人人爱视频| av网站大全在线| 色婷婷久久99综合精品jk白丝 | 不卡的av电影| 伊甸园精品99久久久久久| 精品极品在线| 日韩欧美一级在线播放| 日韩精品电影一区二区三区| 亚洲乱码久久| 国产a一区二区| 日本在线观看网站| 欧美午夜丰满在线18影院| 国产人妻精品午夜福利免费| 日本一区二区三区视频| 欧美一级片久久久久久久| 国产高清免费在线观看| 亚洲国产成人午夜在线一区| 亚洲中文字幕无码专区| 日韩在线成人| 超碰精品一区二区三区乱码| 日韩不卡高清视频| 91丨porny丨蝌蚪视频| 精品国产一区二区三区无码| 国产精品久久久久久久久久久久久久久 | 最新国产在线观看| 91久久线看在观草草青青| 一级特黄a大片免费| 国内成人在线| 99超碰麻豆| 亚洲羞羞网站| 欧美一区二区高清| 四虎精品免费视频| 精品一区二区三区不卡| 夜夜爽99久久国产综合精品女不卡 | 日韩av男人的天堂| 色吊丝在线永久观看最新版本| 亚洲国产你懂的| 26uuu国产| 国产精品啊v在线| 51精品国产人成在线观看 | 成年人性生活视频| 欧美一区激情| 91青青草免费在线看| 中文字幕中文字幕在线十八区 | 欧美aaaxxxx做受视频| 日韩你懂的在线观看| 欧美日韩精品在线观看视频| 国产成人h网站| 国产一区二区三区小说| 北条麻妃在线一区二区免费播放| 久久久亚洲国产| 五月天久久久久久| 日韩欧美一区二区在线| 91在线无精精品白丝| 麻豆91在线看| 免费看污污视频| 澳门成人av| 国产成人综合一区二区三区| 在线视频1区2区| 日韩一二三四区| 久久久久久久九九九九| av在线播放成人| 妞干网在线免费视频| 日韩一区二区在线免费| 96久久精品| 午夜欧美激情| 深夜福利91大全| www.久久久久久| 黑人巨大精品欧美一区二区三区 | 天天操天天插天天射| 一本色道久久综合亚洲91| 日本黄色小视频在线观看| 精品一区二区免费| 欧美一级片免费播放| 啄木系列成人av电影| 国产免费一区二区三区香蕉精| bt在线麻豆视频| 精品香蕉一区二区三区| 91丨porny丨在线中文 | 亚洲精品欧美专区| 久久久久成人精品无码中文字幕| 美女久久一区| 在线无限看免费粉色视频| 成人av动漫| 国产精品久久久久久久久影视| 哥也色在线视频| 亚洲免费视频观看| 精品国自产拍在线观看| 色www精品视频在线观看| 99精品久久久久| 国产欧美精品日韩区二区麻豆天美| 亚洲高清av一区二区三区| 国产一区导航| 男人的天堂视频在线| 亚洲第一福利专区| 97伦理在线四区| 国产亚洲人成a在线v网站| 韩国19禁主播vip福利视频| aaa在线观看| 亚洲精品久久久久久久久| 国产又爽又黄免费软件| 91久久一区二区| 国产对白videos麻豆高潮| 中文字幕亚洲不卡| 久久久久久久毛片| 99久久99久久免费精品蜜臀| 亚洲色图欧美自拍| 日韩av成人高清| 成人观看免费完整观看| 国内揄拍国内精品久久| a级黄色片网站| 三区四区不卡| 日韩在线第一区| 欧美一区二区三区久久| 高清不卡日本v二区在线| 96sao精品免费视频观看| 国产成人精品在线| 都市激情亚洲综合| 羞羞色国产精品| 国产福利在线免费观看| 美日韩丰满少妇在线观看| 在线激情小视频| 中文字幕亚洲欧美一区二区三区| 欧美伦理影视网| 亚洲精品久久久久久久久久久久| www.五月激情| 欧美一区二区三区婷婷月色| 国产精品久久无码一三区| 欧美日韩在线播放三区| 国产情侣免费视频| 在线这里只有精品| 天天干,天天干| 欧美在线观看视频在线| 婷婷激情五月综合| 欧美又粗又大又爽| 中文字幕免费观看视频| 欧美三级乱人伦电影| 亚洲天堂视频网| 欧美日本一道本| 国产美女自慰在线观看| 91麻豆精品国产| 精品国产99久久久久久宅男i| 7799精品视频| 亚洲成人久久精品| 精品成a人在线观看| 无码国产精品96久久久久| 日韩av影院在线观看| 青梅竹马是消防员在线| 亚洲天堂男人的天堂| 91啦中文在线| 久久的精品视频| 不卡的av影片| 奇米成人av国产一区二区三区| 韩国成人漫画| 国产精品美女午夜av| 图片一区二区| 成人91免费视频| 欧美自拍一区| 视频一区二区精品| 亚洲精品一区二区在线看| 美女在线免费视频| 一本久道久久综合狠狠爱| 久久婷婷国产91天堂综合精品| 美女性感视频久久| 国产调教打屁股xxxx网站| 95精品视频在线| 中文天堂资源在线| 怡红院av一区二区三区| 可以免费在线观看的av| 欧美日韩国产一级| 国产成人无码www免费视频播放| 亚洲精品720p| 日韩在线免费电影| 欧美精品www| 国产一区二区三区朝在线观看| 91久久在线播放| 日本中文字幕在线一区| 一区二区精品在线| 日韩视频一区| 一二三av在线| 久久伊人中文字幕| 亚洲av鲁丝一区二区三区| 欧美视频第一页| 99久久精品国产成人一区二区| 日韩极品精品视频免费观看| 蜜桃视频在线观看免费视频网站www| 久久久人成影片一区二区三区观看| 欧美最新精品| 国产一区二区三区高清视频| 手机在线电影一区| 国产视频九色蝌蚪| 国产真实乱子伦精品视频| 日韩免费高清一区二区| 中文字幕中文在线不卡住| 欧美精品二区三区| 欧美一级欧美三级在线观看| 九色视频在线播放| 久久久亚洲影院你懂的| 中文字幕综合| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 日韩国产在线播放| 羞羞的视频在线观看| 国产日韩换脸av一区在线观看| 理论片一区二区在线| 欧美交换配乱吟粗大25p| 青草av.久久免费一区| 性欧美丰满熟妇xxxx性久久久| 亚洲女同一区二区| 中文天堂在线播放| 亚洲女人被黑人巨大进入al| 在线播放蜜桃麻豆| 国产日韩欧美在线看| 国产一区二区区别| 国产极品美女高潮无套久久久| 成人精品国产福利| 欧美日韩精品在线观看视频| 欧美高清dvd| 日本美女高清在线观看免费| 国产精品成人aaaaa网站| 青青草久久爱| 欧美爱爱视频免费看| 成人av午夜电影| 豆国产97在线 | 亚洲| 日韩免费高清av| 在线中文字幕电影| 91最新在线免费观看| 久久精品久久久| 在线观看av免费观看| 国产精品激情偷乱一区二区∴| 成人免费一级片| 色噜噜狠狠狠综合曰曰曰| 成人不卡视频| 亚洲欧美丝袜| 激情综合网最新| 黄色香蕉视频在线观看| 在线不卡a资源高清| 免费在线视频欧美| 成人性生交大片免费看小说| 久久久久久久久国产一区| 天天色天天综合网| 亚洲日本护士毛茸茸| 亚洲av无码一区二区三区dv| 欧美高跟鞋交xxxxxhd| 成人h动漫精品一区二区器材| 久久99久久99精品| 91美女视频网站| 樱花视频在线免费观看| 中文字幕在线日韩| 国产美女精品视频免费播放软件 | 欧美bbbxxxxx| 精品国产乱码久久久久久88av| 国产视频一区欧美| xxx在线播放| 欧美日韩国产高清一区二区三区 | 中文乱码免费一区二区三区下载| 日韩不卡的av| 精品成人在线视频| 国产有码在线| 91免费精品国偷自产在线| 欧美日韩国产探花| 男人网站在线观看| 欧洲一区二区av| 成人片在线看| 久久精品人人做人人爽电影| 日韩 欧美一区二区三区| 国产精品国产精品88| 精品国产一区二区三区不卡| 黑人巨大精品欧美一区二区桃花岛| 日韩中文不卡| 国产成人在线影院| 亚洲无码精品一区二区三区| 久久精品久久久久久| 久久精品色综合| 超碰在线播放91| 亚洲自拍偷拍九九九| 国内三级在线观看| 99精品在线直播| 天堂av在线一区| 国产精品白嫩白嫩大学美女| 国产视频精品自拍| 精品一区二区三区在线观看视频| 日韩国产欧美亚洲| 国产精品国产馆在线真实露脸| 亚洲国产精品久久久久久久| 国产精品aaa| 好看的亚洲午夜视频在线| 久久亚洲无码视频| 欧美r级在线观看| 日本一区二区三区中文字幕| 亚洲中文字幕无码中文字| 亚洲卡通欧美制服中文| 免费在线观看一级毛片| 国产伦精品一区二区三区高清版 |