为了账号安全,请及时绑定邮箱和手机立即绑定

js Array问题

js Array问题

临摹微笑 2019-03-18 22:03:36
题目描述区分 new Array(5) vs new Array(5).fill() vs Array.apply(null,{length:5})的区别。。题目来源及自己的思路有点搞不清这几个的区别,恳请指教,谢谢相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)你期待的结果是什么?实际看到的错误信息又是什么?
查看完整描述

2 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

new Array(arrayLength)

此时将返回一个 length 的值等于 arrayLength 的数组对象(言外之意就是该数组此时并没有包含任何实际的元素,不能理所当然地认为它包含 arrayLength 个值为 undefined 的元素)

在 Chrome Dev Tools 的 Console 中可以看到 new Array(5) 打印结果是:[empty × 5]empty 表示没有包含任何实际的元素,使用 map 之类的数组方法迭代访问,即

new Array(5).map(item => console.log(item)); // 不会打印出任何值

Array.prototype.fill

fill() 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。

new Array(5).fill() 即使用 undefined 填充数组中全部元素,即 [undefined, undefined, undefined, undefined, undefined]

Function.prototype.apply类数组对象

apply() 方法调用一个具有给定this值的函数,以及作为一个数组(或类似数组对象)提供的参数。

Array.apply(null,{length:5}) 即给 Array 传入参数:5个 undefined,结果为 [undefined, undefined, undefined, undefined, undefined]


查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 532 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信