超实用的 JavaScript 字符串代码片段

Anagrams of string (with duplicates) (字符串的排列组合,带有重复项)

使用递归。 对于给定字符串中的每个字母,为其余字母创建所有部分字母。 使用 Array.map() 将字母与每个部分字母组合在一起,然后使用 Array.reduce() 将所有字母组合到一个数组中。 基本情况是字符串 length 等于 2 或 1 。

  1. const anagrams = str => {
  2. if (str.length < = 2) return str.length === 2 ? [str, str[1] + str[0]] : [str];
  3. return str.split('').reduce((acc, letter, i) =>
  4. acc.concat(anagrams(str.slice(0, i) + str.slice(i + 1)).map(val => letter + val)), []);
  5. };
  6. // anagrams('abc') -> ['abc','acb','bac','bca','cab','cba']


Capitalize first letter of every word (大写每个单词的首字母)

使用 replace() 来匹配每个单词的第一个字符,并使用 toUpperCase() 来将其大写。

  1. const capitalizeEveryWord = str => str.replace(/\b[a-z]/g, char => char.toUpperCase());
  2. // capitalizeEveryWord('hello world!') -> 'Hello World!'


Capitalize first letter (首字母大写)

使用解构和 toUpperCase() 大写第一个字母,...rest 第一个字母后获得字符数组,然后 Array.join('')再次使它成为一个字符串。 省略 lowerRest 参数以保持字符串的剩余部分不变,或者将其设置为 true 这会将字符串的剩余部分转换为小写。

  1. const capitalize = ([first,...rest], lowerRest = false) =>
  2. first.toUpperCase() + (lowerRest ? rest.join('').toLowerCase() : rest.join(''));
  3. // capitalize('myName') -> 'MyName'
  4. // capitalize('myName', true) -> 'Myname'


Check for palindrome (检查回文)

使用 toLowerCase() 转换字符串,并使用 replace() 从中删除非字母数字字符。 然后,在将其转换为 tolowerCase() 之后,将 split('') 为单独的字符,reverse() ,join('')并与原始非反转字符串进行比较。

  1. const palindrome = str => {
  2. const s = str.toLowerCase().replace(/[\W_]/g,'');
  3. return s === s.split('').reverse().join('');
  4. }
  5. // palindrome('taco cat') -> true


Reverse a string (反转一个字符串)

使用数组解构和 Array.reverse() 来反转字符串中字符的顺序。使用 join('')合并字符串

  1. const reverseString = str => [...str].reverse().join('');
  2. // reverseString('foobar') -> 'raboof'


Sort characters in string (alphabetical) (按字母顺序排列字符串)

使用 split('') 分割字符串,通过 localeCompare() 排序字符串 Array.sort() ,使用 join('') 进行重组。

  1. const sortCharactersInString = str =>
  2. str.split('').sort((a, b) => a.localeCompare(b)).join('');
  3. // sortCharactersInString('cabbage') -> 'aabbceg'


Truncate a String (截断一个字符串)

确定字符串的 length 是否大于 num。 返回截断所需长度的字符串,用 ... 附加到结尾或原始字符串。

  1. const truncate = (str, num) =>
  2. str.length > num ? str.slice(0, num > 3 ? num - 3 : num) + '...' : str;
  3. // truncate('boomerang', 7) -> 'boom...'



猜你喜欢

转载自blog.csdn.net/qq_26522773/article/details/79298674