【发布时间】:2022-01-20 22:55:25
【问题描述】:
我需要在 javascript 中的特定索引处将元素数组推送到另一个数组中,而不使用扩展运算符,也不使用另一个数组。
输入:
let firstArray = [4,5,6];
let secondArray = [1,2,3,7,8,9];
预期输出:
console.log(secondArray); //[1,2,3,4,5,6,7,8,9];
我尝试使用 splice 和 apply 函数,如下所示。
let firstArray = [4,5,6];
let secondArray = [1,2,3,7,8,9];
firstArray.splice(0, 0, 3, 0);
secondArray.splice.apply(secondArray, firstArray);
这段代码给出了预期的输出,但也在更新 secondArray 之前更新了 firstArray 中的元素。
有没有更好的方法来实现预期的输出而不更新 firstArray 中的元素?
编辑 1: 我试图在没有新数组的情况下实现这一点,因为 firstArray 和 secondArray 的大小很大。因此感觉它可能会为新数组创建不需要的内存分配,以便将元素推入另一个数组。 避免传播运算符,因为它在 IE 浏览器中不受支持 编辑2: 在不使用循环条件的情况下删除。
【问题讨论】:
-
"...不使用扩展运算符或循环,也不使用另一个数组。" 为什么不呢?这些是显而易见的方法。像这样的任意限制,这个问题真的没有任何意义。
-
不使用循环,展开语法,如何从数组
firstArray获取所有数组值 -
你的代码和this answer 链接到重复的目标 Andreas 都让你非常接近。完成后,您只需添加一点即可删除通过
unshift(代码中为splice)添加到firstArray的元素。 -
@T.J.Crowder 我不知何故忽略了 “不使用另一个数组” 部分:/
-
@ArunKumar - 感谢您的回复。请编辑问题以说明这一点。
标签: javascript arrays