1.字符串反轉(zhuǎn)
在此示例中,我們使用展開運(yùn)算符乘碑,Array的reverse方法和 String 的join方法來反轉(zhuǎn)給定的字符串挖息。
const reverseString = string => [...string].reverse().join('')
// 事例
reverseString('Medium') // "muideM"
reverseString('Better Programming') // "gnimmargorP retteB"
2.計(jì)算指定數(shù)字的階乘
const factorialOfNumber = number =>
? number < 0
? ? ? (() => {
? ? ? throw new TypeError('請(qǐng)輸入正整數(shù)')
? ? })()
? ? : number <= 1
? ? ? ? 1
? ? ? : number * factorialOfNumber(number - 1)
// 事例
factorialOfNumber(4) // 24
factorialOfNumber(8) // 40320
3.將數(shù)字轉(zhuǎn)換為數(shù)字?jǐn)?shù)組
const converToArray = number => [...`${number}`].map(el => parseInt(el))
// 事例
converToArray(5678) // [5, 6, 7, 8]
converToArray(12345678) // [1, 2, 3, 4, 5, 6, 7, 8]
4.檢查數(shù)字是否為2的冪
const isNumberPowerOfTwo = number => !!number && (number & (number - 1)) == 0
// 事例
isNumberPowerOfTwo(100) // false
isNumberPowerOfTwo(128) // true
5.從對(duì)象創(chuàng)建鍵-值對(duì)數(shù)組
const keyValuePairsToArray = object => Object.keys(object)
? .map(el => [el, object[el]])
// 事例
keyValuePairsToArray({Better: 4, Programming: 2})
// [['Better', 4], ['Programming', 2]]
keyValuePairsToArray({x:1, y:2, z:3})
// [['x', 1], ['y', 2], ['z', 3]]
6.返回?cái)?shù)字?jǐn)?shù)組中的最大值
const maxElementsFromArray = (array, number = 1) => [...array].sort((x, y) => y -x).slice(0, number)
// 事例
maxElementsFromArray([1, 2, 3, 4, 5]) // [5]
maxElementsFromArray([7, 8, 9, 10, 10], 2) // [10, 10]
7. 檢查數(shù)組中的所有元素是否相等
const elementsAreEqual = array => array.every(el => el === array[0])
// 事例
elementsAreEqual([9, 8, 7, 6, 5, 4]) // false
elementsAreEqual([4, 4, 4, 4, 4]) // true
8. 返回?cái)?shù)的平均值
const averageOfTwoNumbers = (...numbers) => numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0) / numbers.length
// 事例
averageOfTwoNumbers(...[6, 7, 8]) // 7
averageOfTwoNumbers(...[6, 7, 8, 9]) // 7.5
9.返回兩個(gè)或多個(gè)數(shù)字的和
const sumOfNumbers = (...array) => [...array].reduce((accumulator, currentValue) => accumulator + currentValue, 0)
// 事例
sumOfNumbers(5, 6, 7, 8, 9, 10) // 45
sumOfNumbers(...[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) // 50
10.返回?cái)?shù)字?jǐn)?shù)組的冪集
所謂冪集(Power Set), 就是原集合中所有的子集(包括全集和空集)構(gòu)成的集族兽肤√赘梗可數(shù)集是最小的無限集; 它的冪集和實(shí)數(shù)集一一對(duì)應(yīng)(也稱同勢(shì))资铡,是不可數(shù)集沉迹。 不是所有不可數(shù)集都和實(shí)數(shù)集等勢(shì),集合的勢(shì)可以無限的大害驹。如實(shí)數(shù)集的冪集也是不可數(shù)集鞭呕,但它的勢(shì)比實(shí)數(shù)集大。 設(shè)X是一個(gè)有限集,|X| = k葫松,則X的冪集的勢(shì)為2的k次方瓦糕。
const powersetOfArray = array => array.reduce((accumulator, currentValue) => accumulator.concat(accumulator.map(el => [currentValue].concat(el))), [[]])
// 事例
powersetOfArray([4, 2]) // [[], [4], [2], [2, 4]]
powersetOfArray([1, 2, 3])
// [[], [1], [2], [2,1], [3], [3,1], [3,2], [3,2,1]]