我的问题是关于该程序的输出:在 FCC (freecodecamp) 控制台中我看到 4,3,2,1,5
,而在节点控制台中我看到 [ 4, 3, 2, 1, 5 ]
(其他数组同理)
我也在第 8 行尝试了这个:let result = array2Copy.map(i => i.toString());
function frankenSplice(arr1, arr2, n) {
let array2Copy = arr2.slice(0);
for (let i = 0; i < arr1.length; i++){
array2Copy.splice(n, 0, arr1[i]);
}
let result = array2Copy;
return array2Copy;
}
console.log(frankenSplice([1, 2, 3], [4, 5], 1));-->4,3,2,1,5
console.log(frankenSplice([1, 2], ["a", "b"], 1));-->a,2,1,b
根据FCC控制台,我需要如下输出:[4, 1, 2, 3, 5]
最佳答案
首先要记住splice
的参数是:
- (1) 应添加/删除项目的索引
- (2) 要删除的项目数
- (3), (4), (5), ...(可选)要添加的项目
你需要将一个数组插入到另一个数组中,所以你只需要一个拼接
:插入项目的索引是参数n
,而你不需要' 想要删除任何项目,所以第二个参数应该是 0
,然后指定要添加 的项目,只是散布到 拼接的其余部分
参数列表:
function frankenSplice(arr1, arr2, n) {
// don't mutate the argument
const newArr = arr2.slice();
newArr.splice(n, 0, ...arr1);
return newArr;
}
console.log(frankenSplice([1, 2, 3], [4, 5], 1)); //-->4,3,2,1,5
console.log(frankenSplice([1, 2], ["a", "b"], 1)); //-->a,2,1,b
关于javascript - 如何使用 splice 和 slice 将一个数组放入另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58209968/