摘要:英文文章來源于計算一個字符串中字符的所有排序情況使用遞歸遍歷字符串中的每個字符計算剩余字符串的所有順序用區合并該字符和剩余字符串的每種順序然后用將該字符串的所有順序合并到一個數組中當字符串的等于或者時,是兩個基例字符串的首字母大寫用
英文文章來源于:https://github.com/Chalarangelo/30-seconds-of-code/blob/master/README.md
anagrams計算一個字符串中字符的所有排序情況.
使用遞歸.
遍歷字符串中的每個字符, 計算剩余字符串的所有順序.
用 Array.map() 區合并該字符和剩余字符串的每種順序, 然后用 Array.reduce() 將該字符串的所有順序合并到一個數組中.
當字符串的 length 等于 2 或者 1 時,是兩個基例.
const anagrams = str => { if (str.length <= 2) return str.length === 2 ? [str, str[1] + str[0]] : [str]; return str.split("").reduce((acc, letter, i) => acc.concat(anagrams(str.slice(0, i) + str.slice(i + 1)).map(val => letter + val)), []); }; // anagrams("abc") -> ["abc","acb","bac","bca","cab","cba"]Capitalize
字符串的首字母大寫.
用解構和 toUpperCase() 將首字母大寫, 用 ...rest 去獲得除首字母外的字符串,然后用 Array.join("") 將所得的數組合并為字符串.
如果 lowerRest參數為 true, 將轉變剩余字符串為小寫輸出, 否則.原樣輸出.
const capitalize = ([first,...rest], lowerRest = false) => first.toUpperCase() + (lowerRest ? rest.join("").toLowerCase() : rest.join("")); // capitalize("myName") -> "MyName" // capitalize("myName", true) -> "Myname"capitalizeEveryWord
把字符串的每個單詞首字母大寫.
用 replace() 去匹配每個單詞的首字母 然后用 toUpperCase() 將該字母大寫.
const capitalizeEveryWord = str => str.replace(/[a-z]/g, char => char.toUpperCase()); // capitalizeEveryWord("hello world!") -> "Hello World!"countVowels
計算字串中原因字母個數.
用一個正則表達是計算字符串中的元音字母 (A, E, I, O, U) 的個數.
const countVowels = str => (str.match(/[aeiou]/ig) || []).length; // countVowels("foobar") -> 3 // countVowels("gym") -> 0escapeRegExp
轉義一個字符串為一個可使用的正則表達式.
用 replace() 轉義特殊的字符.
const escapeRegExp = str => str.replace(/[.*+?^${}()|[]]/g, "$&"); // escapeRegExp("(test)") -> (test)fromCamelCase
轉換駝峰字符串.
用 replace() 以下劃線,連字符和空格為分隔符轉換駝峰形式的字符串,首先需要去除字符串中的分割字符,然后,用分隔符拼接字符串.
第二個參數默認為 _.
const fromCamelCase = (str, separator = "_") => str.replace(/([a-zd])([A-Z])/g, "$1" + separator + "$2") .replace(/([A-Z]+)([A-Z][a-zd]+)/g, "$1" + separator + "$2").toLowerCase(); // fromCamelCase("someDatabaseFieldName", " ") -> "some database field name" // fromCamelCase("someLabelThatNeedsToBeCamelized", "-") -> "some-label-that-needs-to-be-camelized" // fromCamelCase("someJavascriptProperty", "_") -> "some_javascript_property"toCamelCase
字符串轉化為駝峰形式的字符串.
用 replace() 去移除下劃線,連接符,空格,然后將字符串轉化為駝峰形式輸出.
const toCamelCase = str => str.replace(/^([A-Z])|[s-_]+(w)/g, (match, p1, p2, offset) => p2 ? p2.toUpperCase() : p1.toLowerCase()); // toCamelCase("some_database_field_name") -> "someDatabaseFieldName" // toCamelCase("Some label that needs to be camelized") -> "someLabelThatNeedsToBeCamelized" // toCamelCase("some-javascript-property") -> "someJavascriptProperty" // toCamelCase("some-mixed_string with spaces_underscores-and-hyphens") -> "someMixedStringWithSpacesUnderscoresAndHyphens"reverseString
反轉字符串.
用 split("") 和 Array.reverse() 去反轉字符數組中元素的順序.
用 join("") 去拼字符數組為字符串.
const reverseString = str => str.split("").reverse().join(""); // reverseString("foobar") -> "raboof"sortCharactersInString
按字符順序排列字符串中字符的順序.
用 split("") 將字符串轉化為數組, 然后用 Array.sort() 依據自定義排序規則 localeCompare() 位字符數組排序, 最后用 join("") 重新拼接字符數組為字符串.
const sortCharactersInString = str => str.split("").sort((a, b) => a.localeCompare(b)).join(""); // sortCharactersInString("cabbage") -> "aabbceg"truncateString
保留指定長度的字符串.
需要判斷字符串的 length 是否大于 num.
返回你希望的截斷后的字符串, 尾部有 ....
const truncateString = (str, num) => str.length > num ? str.slice(0, num > 3 ? num - 3 : num) + "..." : str; // truncateString("boomerang", 7) -> "boom..."words
將字符串轉化為以單詞為元素的字符串數組,去除所有非單詞元素.
用 String.split() 以 pattern 正則表達式為分割規則來分割字符串為字符串數組. 用 Array.filter() 移除字符串中的空字符.
默認 pattern 為/1+/.
const words = (str, pattern = /[^a-zA-Z-]+/) => str.split(pattern).filter(Boolean); // words("I love javaScript!!") -> ["I", "love", "javaScript"] // words("python, javaScript & coffee") -> ["python", "javaScript", "coffee"]
更多關于30-seconds-code中文翻譯https://github.com/lvzhenbang/article/blob/master/js/30-seconds-code/index.md
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/90398.html
摘要:英文文章來源于返回參數列表中第一個非和的參數用實現返回第一個非參數返回一個用自定義函數中的函數是否返回來對中傳入的參數列表盡心過濾用去遍歷參數列表,用給定的函數的返回值來過濾參數列表返回給定值的基本類型返回給定值的構造函數名字的小 Utility 英文文章來源于:https://github.com/Chalarangelo/30-seconds-of-code/blob/master...
摘要:顯示所有指定的元素用操作符和清除所有指定元素的屬性。使用了兩個事件監聽器。將指定的數組元素轉換成元素標簽,然后將它們插入指定的選擇器元素內用和去生成一個元素標簽列表復制一個字符串到剪切板。用去執行復制到剪切板。 英文文章來源于:https://github.com/Chalarangelo/30-seconds-of-code/blob/master/README.md Browser...
摘要:英文文章來源于給定一個鍵值和一組參數,但給定一個上下文時調用它們。 英文文章來源于:https://github.com/Chalarangelo/30-seconds-of-code/blob/master/README.md Adapter call 給定一個鍵值和一組參數,但給定一個上下文時調用它們。 使用閉包調用存儲的鍵值與存儲的參數 const call = ( key, ....
摘要:英文文章來源于刪除對象中除指定鍵值的屬性用遞歸的方法用方法遍歷對象然后刪除不是在給定數組中的屬性如果你傳入,它將對該鍵所對應的對象進行深度遍歷的變形非原著作對所有的鍵對應的對象進行深度遍歷用方法遍歷對象然后刪除不是在給定數組中的屬性如 英文文章來源于:https://github.com/Chalarangelo/30-seconds-of-code/blob/master/READM...
摘要:英文文章來源于數組最大公約數計算數字數組最大公約數用和運算式使用遞歸計算一個數字數組的最大公約數數組最小公倍數求數字數組的最小公倍數用和運算式使用遞歸計算一個數字數組的最小公倍數返回一個數組中的最大值。 英文文章來源于:https://github.com/Chalarangelo/30-seconds-of-code/blob/master/README.md Array 數組最大公...
閱讀 2061·2023-04-25 17:48
閱讀 3578·2021-09-22 15:37
閱讀 2932·2021-09-22 15:36
閱讀 5864·2021-09-22 15:06
閱讀 1634·2019-08-30 15:53
閱讀 1422·2019-08-30 15:52
閱讀 706·2019-08-30 13:48
閱讀 1116·2019-08-30 12:44