有没有一个数组方法可以替换下面的函数(类似于 a.splice(some, tricky, arguments)
这样的方法)?
function resize(arr, newSize, defaultValue) {
if (newSize > arr.length)
while(newSize > arr.length)
arr.push(defaultValue);
else
arr.length = newSize;
}
如果没有的话,是否有更好/更漂亮/更短的实现方法?该函数应在数组需要增长时添加默认值,在收缩时删除值。
arr.length = newSize;
这行代码将数组的长度调整为newSize
,如果新长度比旧长度大,则新增的元素将会被填充为undefined
。 - crushArray.prototype.fill
是否存在本地提供不同的方法。(不要费心使用polyfill,它比您已经拥有的东西更慢)。您唯一能做的另一件事就是创建一个巨大的预定义数组查找表,其中包含默认值和Array.prototype.concat
。同样,所有这些都取决于您对“优雅”和“高效”的理解。您是指处理能力、内存、代码行数等方面的高效吗? - crush