毫无疑问,JavaScript 是Web开发中最流行的编程语言之一。 无论使用的是 React,Vue 还是Angular,都只是 JavaScript。 JS围绕着广阔而至关重要的生态系统发展,提供了无数的框架和库,可帮助我们更快地开发应用程序。

但是有时候最好退一步,尝试了解如何在没有使用库的情况下做事。 看看下面的代码片段,它们以优雅的方式解决了简单的问题,在日常项目也很实用,所以记好笔记,当遇到问题时就可直接来用使用。

1.字符串反转
在此示例中,我们使用展开运算符,Array的reverse方法和 String 的join方法来反转给定的字符串。

const reverseString = string => [...string].reverse().join('')// 事例
reverseString('Medium') // "muideM"
reverseString('Better Programming') // "gnimmargorP retteB"
本人在职前端开发,如果你也想学习前端开发技术,可以加入我组建的前端学习交流裙:851 231 348 自己根据多年来
的开发经验总结录制的一套web前端精讲视频和学习方法,以及一些前端学习手册,前端面试题,端开发工具,
PDF文档书籍教程,无偿分享给大家。需要的话都可以自行来获取下载。

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次方。

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

以上就是10个实用的 ES6 方法的详细内容

10个实用的 ES6 方法相关推荐

  1. layer.open子页面调用父页面的方法_记好这 24 个 ES6 方法,用来解决实际开发的 JS 问题...

    本文主要介绍 24 中 es6 方法,这些方法都挺实用的,本本请记好,时不时翻出来看看. 1.如何隐藏所有指定的元素 const hide = (...el) => [...el].forEac ...

  2. JavaScript字符串操作方法大全,包含ES6方法

    一.charAt() 返回在指定位置的字符. var str="abc" console.log(str.charAt(0))//a 二.charCodeAt() 返回在指定的位置 ...

  3. JavaScript字符串操作方法大全,包含ES6方法 1

    一.charAt() 返回在指定位置的字符. var str="abc" console.log(str.charAt(1))//a 二.charCodeAt() 返回在指定的位置 ...

  4. 10个实用的机器学习建议

    点击上方"算法猿的成长",关注公众号,选择加"星标"或"置顶" 总第 126 篇文章,本文大约 2500 字,阅读大约需要 10 分钟 原文 ...

  5. JavaScript字符串操作方法大全,包含ES6方法 2

    一.charAt() 返回在指定位置的字符. var str="abc" console.log(str.charAt(1))//a 二.charCodeAt() 返回在指定的位置 ...

  6. 9个超级实用的 ES6 特性,超级实用哦!

    ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应 ...

  7. 【巨人的肩膀上制造世界】——10——Unity3D实用插件之Vectrosity,轻松便捷的实现2D/3D画线功能

    [巨人的肩膀上制造世界]--10--Unity3D实用插件之Vectrosity,轻松便捷的实现2D/3D画线功能 目录 1.博客介绍 2.内容 (1)编辑器预制线条 (2)编辑器修改线条 (3)线条 ...

  8. 隐藏在sketch的10个实用技巧,学会就是赚到!

    Sketch Mac是一款为设计师量身定做的优美界面和强大工具兼有的专业绘图工具.能够满足网页.用户界面.图标等的设计需求. Sketch是一款为设计师量身定做的优美界面和强大工具兼有的专业绘图工具. ...

  9. 10个实用的但偏执的Java编程技术-扣丁学堂

    10个实用的但偏执的Java编程技术 在沉浸于编码一段时间以后(比如说我已经投入近20年左右的时间在程序上了),你会渐渐对这些东西习以为常.因为,你知道的-- 任何事情有可能出错,没错,的确如此. 这 ...

最新文章

  1. ACM图灵奖获得者:想从大数据中获益,先解决集成问题!
  2. 【转】ADO.NET对数据库操作经典类
  3. Logisim 组合电路设计 七段数码管的使用
  4. angularjs 服务
  5. 五、scrapy爬虫框架——logging 模块的使用
  6. 自研芯片鸿蒙系统,华为智慧屏:自研智慧芯片鸿蒙系统 9月发布
  7. mybatis 映射成多个list_SSM:Mybatis架构与原理
  8. C#验证控件使用方法及常用正则表达式例析转
  9. 飞翔的圆(Flappy Bird)游戏源码完整版
  10. 【Kettle】date类型不能被excel输出
  11. 短路主板电源针,启动电脑的办法
  12. win8 完全禁用uac的方法
  13. POI Word表格复制行2种方式(copy()、手动复制行)
  14. C++ 算法 元素最大值和最小值
  15. 开源建站系统的开源组件风险
  16. Unity3d设置鼠标指针的样式
  17. 炸裂了!来了一波新年微信红包封面,抓紧领取,先到先得!
  18. fiddle无法抓包小程序解答
  19. 96张完整PPT清晰解读全球智能制造趋势!
  20. rdesktop安装教程

热门文章

  1. Maven学习总结(22)——Maven常用插件介绍
  2. Java代码制作ie浏览器_[Java教程]判断IE浏览器代码实例
  3. 十进制转任意进制-数论
  4. Construct Maximum Binary Tree
  5. [HDU 4842]--过河(dp+状态压缩)
  6. 字符串类习题、面试题详解(第二篇)
  7. 中继链路,以太网通道,DHCP配置
  8. 【图说】Eclipse与Unity 3D协同工作
  9. linux crontab 详解
  10. Effective C# Item30:尽可能实现CLS兼容的程序集