如何将JavaScript数组所有索引整体偏移指定数值并更新原数组?
一行代码实现原数组索引整体上移2位(直接修改原数组)
嘿,这个需求很明确!要在不改动原数组元素值的前提下,把所有元素的索引整体上移2位,同时直接更新原数组,一行代码用Array.prototype.splice()就能轻松搞定:
array.splice(0, 0, 0, 0);
为什么这能满足需求?
splice(0, 0, 0, 0)的含义是:从数组的索引0位置开始,不删除任何元素(第二个参数为0),插入两个0作为占位。- 插入操作会自动把原数组中所有元素向后推移2位,这样原
array[0] = 1就会移到array[2],array[1] = 2移到array[3],以此类推,完全符合你要的索引上移效果。 - 整个过程直接修改原数组,不会生成新数组,而且原元素的数值没有任何变化。
如果你的占位值不需要是0,而是希望用undefined(或者保持空状态),可以改成更灵活的写法:
array.splice(0, 0, ...Array(2));
这里利用扩展运算符...把长度为2的空数组(元素默认是undefined)展开成两个参数插入到数组开头,效果同样是让原元素索引上移2位。
内容的提问来源于stack exchange,提问作者beepingbopping
相关产品推荐
相关产品推荐

