这是我在 React 书中找到的一个 JavaScript 箭头函数:
const createArray = (length) => [...Array(length)];
为什么不简单地返回一个新数组呢?
const createArray = (length) => Array(length);
如果我记录结果createArray(7)
使用任一定义,我都会得到相同的结果:
(7) [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
与第二个定义相比,第一个定义实现了什么?
Array(length);
将创建一个稀疏数组- 没有自有财产的人(除了length
),不能使用数组迭代方法进行迭代:
const arr = new Array(7);
console.log(arr.hasOwnProperty('4'));
arr.forEach(() => {
console.log('iteration');
});
相反,利用扩展语法将正确填充新数组:
const arr = [...new Array(7)];
console.log(arr.hasOwnProperty('4'));
arr.forEach(() => {
console.log('iteration');
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)