之所以将这两个方法放在一起说,是因为经常写这样的代码: Array.from({length: 5}).fill(0),看起来很简洁,但是踩到坑之后才发现自己对这两个方法实在是不求甚解。

Array.from

这个静态方法可以将某些值转换成数组,值可以是一个字符串,一个set,一个map或者一个类数组对象,最终返回一个数组。例子如下:

Array.from('一二三四五六七')
// ["一", "二", "三", "四", "五", "六", "七"]
// 等效的es5是'一二三四五六七'.split('') Array.from(new Set([1,2,1,2]))
// 等效[...new Set([1,2,1,2])] => [1,2]
// 用来数组去重 Array.from(new Map([[1, 2], [2, 4], [4, 8]])) // 接受一个map // 接受一个类数组对象
Array.from(arguments) Array.from(document.querySelectorAll('div')) Array.from({1: 2,length:3}) // [undefined, 2, undefined]

接受类数组对象这里很有意思,比如Array.from({length:5})new Array(5)有什么区别。这里不在多说,可以看这篇文章了解一下。

除了一个必须参数外,这个方法还接受两个可选参数,一个mapFn,一个this参数,看个例子来了解一下:


Array.from('一二三四五六七', week => `周${week}`)
// ["周一", "周二", "周三", "周四", "周五", "周六", "周七"] Array.from('一二三四五六七', function(week){
return `周${week} ${this.time}`
}, {time: '下午3点'}) //["周一 下午3点", "周二 下午3点", ...]

Array.prototype.fill

Array.prototype.fill,顾名思义,是用来填充数组的。这个方法也可以接受3个参数,分别是fill的值,开始的index,结束的index(貌似Array的方法都有这么一个特点,要么自己接受的参数多,要么给callback传的参数多,所以不好完全掌握

最新文章

  1. 数据库的日志数据库(_log.ldf)文件太大,如何压缩
  2. ssh通道技术
  3. 《SQL Server企业级平台管理实践》读书笔记——关于SQL Server数据库的还原方式
  4. JavaScript动态操作style
  5. C#语法中一个问号(?)和两个问号(??)的运算符是什么意思?
  6. 浙大PAT 7-06 题解
  7. zstu 4214 高楼扔鸡蛋(google 面试题)dp
  8. Windows XP Mode安装
  9. Spark SQL访问PostgreSQL
  10. 纯 Java 开发 WebService 调用测试工具(wsCaller.jar)
  11. java中数据的传递方式到底是怎样的!
  12. Vue计算属性的用法
  13. struct termios结构体详解
  14. Android Material Design控件学习(三)——使用TextInputLayout实现酷市场登录效果
  15. 详解SQL中的GROUP BY语句
  16. CMDB内功心法,助我登上运维之巅
  17. Matlab绘图基础——用print函数批量保存图片到文件(Print figure or save to file)
  18. IO流的复习笔记
  19. Xcode及模拟器SDK下载
  20. ionic调用摄像头

热门文章

  1. vue 自动识别PC、移动端,并跳转到对应页面
  2. FortiGate 路由
  3. Django实现支付宝支付
  4. maven打包不包含配置文件[z]
  5. Fiddler 手机抓包 手机联网异常解决方案
  6. 彻底关闭win10后台同步数据(转自技术社区)
  7. maven 监理web war 项目
  8. android 设置LOGO和app名称
  9. zabbix3.x自动发现主机
  10. linux学习第七天 (Linux就该这么学)