上次24個實用 ES6 方法受到好評,此次再來 10個

做者:Simon Holdorf
譯者:前端小智
來源: webdevhub
點贊再看,養成習慣

本文 GitHub https://github.com/qq44924588... 上已經收錄,更多往期高贊文章的分類,也整理了不少個人文檔,和教程資料。歡迎Star和完善,你們面試能夠參照考點複習,但願咱們一塊兒有點東西。javascript

毫無疑問,JavaScript 是Web開發中最流行的編程語言之一。 不管使用的是 React,Vue 仍是Angular,都只是 JavaScript。 JS圍繞着廣闊而相當重要的生態系統發展,提供了無數的框架和庫,可幫助咱們更快地開發應用程序。前端

可是有時候最好退一步,嘗試瞭解如何在沒有使用庫的狀況下作事。 看看下面的代碼片斷,它們以優雅的方式解決了簡單的問題,在平常項目也很實用,因此記好筆記,當遇到問題時就可直接來用使用。java

1.字符串反轉

在此示例中,咱們使用展開運算符,Array的reverse方法和 String 的join方法來反轉給定的字符串。git

const reverseString = string => [...string].reverse().join('')

// 事例
reverseString('Medium') // "muideM"
reverseString('Better Programming') // "gnimmargorP retteB"

2.計算指定數字的階乘

const factorialOfNumber = number => 
  number < 0
    ? (() => {
      throw new TypeError('請輸入正整數')
    })()
    : number <= 1
      ? 1
      : number * factorialOfNumber(number - 1)
      
      
// 事例
factorialOfNumber(4) // 24
factorialOfNumber(8) // 40320

3.將數字轉換爲數字數組

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.檢查數字是否爲2的冪

const isNumberPowerOfTwo = number => !!number && (number & (number - 1)) == 0

// 事例
isNumberPowerOfTwo(100) // false
isNumberPowerOfTwo(128) // true

5.從對象建立鍵-值對數組

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.返回數字數組中的最大值

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. 檢查數組中的全部元素是否相等

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. 返回數的平均值

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.返回兩個或多個數字的和

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.返回數字數組的冪集

所謂冪集(Power Set), 就是原集合中全部的子集(包括全集和空集)構成的集族。可數集是最小的無限集; 它的冪集和實數集一一對應(也稱同勢),是不可數集。 不是全部不可數集都和實數集等勢,集合的勢能夠無限的大。如實數集的冪集也是不可數集,但它的勢比實數集大。 設X是一個有限集,|X| = k,則X的冪集的勢爲2的k次方。github

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]]

代碼部署後可能存在的BUG無法實時知道,過後爲了解決這些BUG,花了大量的時間進行log 調試,這邊順便給你們推薦一個好用的BUG監控工具 Fundebugweb

原文:
https://webdevhub.net/article...面試


交流

文章每週持續更新,能夠微信搜索「 大遷世界 」第一時間閱讀和催更(比博客早一到兩篇喲),本文 GitHub https://github.com/qq449245884/xiaozhi 已經收錄,整理了不少個人文檔,歡迎Star和完善,你們面試能夠參照考點複習,另外關注公衆號,後臺回覆福利,便可看到福利,你懂的。編程

相關文章
相關標籤/搜索