javascript - 数组 : how to push all elements forward by one with javascript 中的数组

标签 javascript arrays

这是我的数组:

arr_1 = [1,2,3]
arr_2 = [4,5,6]
arr_3 = [7,8,9]

arr = [arr_1, arr_2, arr_3]
arr = [[1,2,3], [4,5,6], [7,8,9]]

我想要做的是像这样推送所有元素,以便最终数组如下所示,并在我的数组开头插入另一个元素:

arr = [[i,1,2], [3,4,5], [6,7,8], [9]]

所有子数组不得超过 3 个元素。

感谢您的帮助。

最佳答案

您可以访问所有内部数组并取消移动前一个循环中剩余的值。

var array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]],
    chunk = 3,
    item = 'x',
    i = 0,
    temp = [item];
    
while (i < array.length) {
    array[i].unshift(...temp);
    temp = array[i].splice(chunk, array[i].length - chunk);
    i++;
}
if (temp.length) {
    array.push(temp);
}

console.log(array.map(a => a.join(' ')));

关于javascript - 数组 : how to push all elements forward by one with javascript 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49495848/

相关文章:

python - 对于大型数组的手动元素操作,numpy 的更快替代方案?

c++ - 从数组转换为 vector 的边界

javascript - 如何自动刷新div

javascript - 如何强制对象具有以 Typescript 中的联合类型命名的属性?

javascript - Vue,具有 true/false boolean 值的 v-select 组件

java - 尝试用对象数组中的 double 值替换字符串

javascript - 查找数组中是否有任何项目符合条件

javascript - 在 data-uk-timepicker 中设置间隔

javascript - 控制台错误消息中未指定行号。该怎么办?

c++ - C++程序编译错误