4.4 KiB
4.4 KiB
title | localeTitle |
---|---|
Slice and Splice | 切片和拼接 |
切片和拼接
如果卡住,请记得使用**Read-Search-Ask
** 。尝试配对程序并编写自己的代码
问题说明:
我们需要将第一个数组中的每个元素从索引n开始复制到第二个数组中。我们还必须确保原始数组不会发生变异。也就是说,我们无法对原始数组进行任何更改。
相关链接
提示:1
在函数内部创建第二个数组的副本。这将确保原始数组不会发生变异。这可以通过在第二个数组上使用切片操作来完成,并将其分配给变量。
现在尝试解决问题
提示:2
遍历第一个数组中的所有项目。对于第一个数组中的每个项,将其拼接到作为参数给出的索引中的复制数组中。
现在尝试解决问题
提示:3
执行拼接后增加索引。
现在尝试解决问题
扰流警报!
提前解决!
基本代码解决方案
function frankenSplice(arr1, arr2, n) {
// It's alive. It's alive!
let localArray = arr2.slice();
for (let i = 0; i < arr1.length; i++) {
localArray.splice(n, 0, arr1[i]);
n++;
}
return localArray;
}
代码说明:
-
我们的目标是从
arr1
获取所有元素,并从索引位置n
开始将它们插入到arr2
。同时我们必须确保arr
或arr2
都没有变异。 -
使用
slice()
函数,我们可以创建arr2
的精确副本,并将操作的结果分配给变量localArray
。 -
现在我们有了一个可以变异的数组,我们可以迭代第一个数组中的每个项目。对于第一个数组中的每个项目,我们可以使用
splice()
函数将项目插入localArray
索引n
中。 -
我们将索引
n
递增1。这将确保arr1
中的每个项都插入到正确索引位置的localArray
中。 -
最后,我们返回
localArray
并结束该函数。
捐款说明:
- 请勿添加与任何现有解决方案类似的解决方案。如果您认为它**相似但更好** ,那么尝试合并(或替换)现有的类似解决方案。
- 添加解决方案的说明。
- 将解决方案分为以下类别之一 - 基本 , 中级和高级 。
- 如果您添加了任何**相关的主要内容,**请仅添加您的用户名。 ( 不要 删除任何现有的用户名 )