js差異演算法
Ⅰ 前端演算法入門:刷演算法題常用的 JS 基礎掃盲
此篇屬於前端演算法入門系列的第一篇,主要介紹常用的 數組方法 、 字元串方法 、 遍歷方法 、 高階函數 、 正則表達式 以及相關 數學知識 。
在尾部追加,類似於壓棧,原數組會變。
在尾部彈出,類似於出棧,原數組會變。數組的 push & pop 可以模擬常見數據結構之一:棧。
在頭部壓入數據,類似於入隊,原數組會變。
在頭部彈出數據,原數組會變。數組的 push (入隊) & shift (出隊) 可以模擬常見數據結構之一:隊列。
concat 會在當前數組尾部拼接傳入的數組,然後返回一個新數組,原數組不變。
在數組中尋找該值,找到則返回其下標,找不到則返回 -1 。
在數組中尋找該值,找到則返回 true ,找不到則返回 false 。
將數組轉化成字元串,並返回該字元串,不傳值則默認逗號隔開,原數組不變。
翻轉原數組,並返回已完成翻轉的數組,原數組改變。
從 start 開始截取到 end ,但是不包括 end
可參考 MDN:Sort [5]
將數組轉化成字元串,並返回該字元串,逗號隔開,原數組不變。
返回指定索引位置處的字元。類似於數組用中括弧獲取相應下標位置的數據。
類似數組的concat(),用來返回一個合並拼接兩個或兩個以上字元串。原字元串不變。
indexOf ,返回一個字元在字元串中首次出現的位置, lastIndexOf 返回一個字元在字元串中最後一次出現的位置。
提取字元串的片斷,並把提取的字元串作為新的字元串返回出來。原字元串不變。
使用指定的分隔符將一個字元串拆分為多個子字元串數組並返回,原字元串不變。
match() 方法可在字元串內檢索指定的值,或找到一個或多個正則表達式的匹配,並返回一個包含該搜索結果的數組。
注意事項 :如果 match 方法沒有找到匹配,將返回 null 。如果找到匹配,則 match 方法會把匹配到以數組形式返回,如果正則規則未設置全局修飾符 g ,則 match 方法返回的數組有兩個特性: input 和 index 。 input 屬性包含整個被搜索的字元串。 index 屬性包含了在整個被搜索字元串中匹配的子字元串的位置。
replace 接收兩個參數,參數一是需要替換掉的字元或者一個正則的匹配規則,參數二,需要替換進去的字元,仔實際的原理當中,參數二,你可以換成一個回調函數。
在目標字元串中搜索與正則規則相匹配的字元,搜索到,則返回第一個匹配項在目標字元串當中的位置,沒有搜索到則返回一個 -1 。
toLowerCase 把字母轉換成小寫, toUpperCase() 則是把字母轉換成大寫。
includes 、 startsWith 、 endsWith , es6 的新增方法, includes 用來檢測目標字元串對象是否包含某個字元,返回一個布爾值, startsWith 用來檢測當前字元是否是目標字元串的起始部分,相對的 endwith 是用來檢測是否是目標字元串的結尾部分。
返回一個新的字元串對象,新字元串等於重復了指定次數的原始字元串。接收一個參數,就是指定重復的次數。原字元串不變。
最常用的 for 循環,經常用的數組遍歷,也可以遍歷字元串。
while 、 do while 主要的功能是,當滿足 while 後邊所跟的條件時,來執行相關業務。這兩個的區別是, while 會先判斷是否滿足條件,然後再去執行花括弧裡面的任務,而 do while 則是先執行一次花括弧中的任務,再去執行 while 條件,判斷下次還是否再去執行 do 裡面的操作。也就是說 do while 至少會執行一次操作 .
拷貝一份遍歷原數組。
for…of 是 ES6 新增的方法,但是 for…of 不能去遍歷普通的對象,** for…of 的好處是可以使用 break 跳出循環。**
面試官:說一下 for...in 和 for...of 區別?
返回一個布爾值 。當我們需要判定數組中的元素是否滿足某些條件時,可以使用 every / some 。這兩個的區別是, every 會去判斷判斷數組中的每一項,而 some 則是當某一項滿足條件時返回。
rece 從左到右將數組元素做「疊加」處理,返回一個值。 receRight 從右到左。
Object.keys 方法的參數是一個對象,返回一個數組。該數組的成員都是該對象自身的(而不是繼承的)所有屬性名,且只返回可枚舉的屬性。
Object.getOwnPropertyNames 方法與 Object.keys 類似,也是接受一個對象作為參數,返回一個數組,包含了該對象自身的所有屬性名。但它能返回不可枚舉的屬性。
這里羅列一些我在刷演算法題中遇到的正則表達式,如果有時間可認真學一下 正則表達式不要背 [7] 。
持續更新,敬請期待……
若一個正整數無法被除了 1 和它自身之外的任何自然數整除,則稱該數為質數(或素數),否則稱該正整數為合數。
Ⅱ JS濡備綍浣跨敤璐蹇冪畻娉曡В鍐蟲壘闆墮棶棰
鍦ㄧ幇瀹炵敓媧諱腑錛岀粡甯擱亣鍒版壘闆墮棶棰橈紝鍋囪炬湁鏁扮洰涓嶉檺鐨勯潰鍊間負20,10,5,1鐨勭‖甯併 緇欏嚭闇瑕佹壘闆舵暟錛屾眰鍑烘壘闆舵柟妗堬紝瑕佹眰錛氫嬌鐢ㄦ暟鐩鏈灝戠殑紜甯併
瀵逛簬姝ょ被闂棰橈紝璐蹇冪畻娉曢噰鍙栫殑鏂瑰紡鏄鎵鵑挶鏃訛紝鎬繪槸閫夊彇鍙渚涙壘閽辯殑紜甯佺殑鏈澶у箋傛瘮濡傦紝闇瑕佹壘閽辨暟涓25鏃訛紝鎵鵑挶鏂瑰紡涓20+5錛岃屼笉鏄10+10+5銆
璐蹇冪畻娉曡繕鏄寰堝父瑙佺殑綆楁硶涔嬩竴錛岃繖鏄鐢變簬瀹冪畝鍗曟槗琛岋紝鏋勯犺椽蹇冪瓥鐣ヤ笉鏄寰堝洶闅俱傛湰鏂囨垜浠灝卞拰澶у跺垎浜獼S浣跨敤璐蹇冪畻娉曡В鍐蟲壘闆墮棶棰樼ず渚嬨
鍙鎯滅殑鏄錛屽畠闇瑕佽瘉鏄庡悗鎵嶈兘鐪熸h繍鐢ㄥ埌棰樼洰鐨勭畻娉曚腑銆
緇撴灉鏄錛
闇瑕佽存槑鐨勬槸錛屽湪涓浜涙儏鍐典笅錛屾壘闆墮挶闂棰樹嬌鐢ㄨ椽蹇冪畻娉曞苟涓嶈兘寰楀埌鏁翠綋鏈浼樿В錛屽叾緇撴灉鍙鑳藉彧鏄鏈浼樿В鐨勫緢濂借繎浼箋
姣斿傦紝濡傛灉鎻愪緵鎵鵑浂鐨勯潰鍊兼槸11錛5錛1錛屾壘闆15銆
浣跨敤璐蹇冪畻娉曟壘闆舵柟寮忎負11+1+1+1+1錛岄渶瑕佷簲鏋氱‖甯佽屾渶浼樿В涓5+5+5錛屽彧闇瑕3鏋氱‖甯併
Ⅲ 前端js 加密解密方式
一、base64加密
使用JS函數的window.btoa()和 window.atob(),分別是編碼和解碼
二、編碼和解碼字元串
使用JS函數的escape()和unescape(),分別是編碼和解碼
三、AES加密解密
四、RSA加密解密