gpt4 book ai didi

javascript - 如何调整数组大小

转载 作者:数据小太阳 更新时间:2023-10-29 04:07:54 24 4
gpt4 key购买 nike

是否有一个 Array 方法可以替换以下函数(类似于 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;
}

如果没有,是否有更好/更好/更短的/实现方式?如果数组应该增长并在收缩时删除值,该函数应该附加一个默认值。

最佳答案

就优雅而言,我会说您可以将原始解决方案缩减为:

function resize(arr, newSize, defaultValue) {
while(newSize > arr.length)
arr.push(defaultValue);
arr.length = newSize;
}

或者使用原型(prototype):

Array.prototype.resize = function(newSize, defaultValue) {
while(newSize > this.length)
this.push(defaultValue);
this.length = newSize;
}

编辑:ES2016 方法:

function resize(arr, newSize, defaultValue) {
return [ ...arr, ...Array(Math.max(newSize - arr.length, 0)).fill(defaultValue)];
}

关于javascript - 如何调整数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32054170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com