我的问题是关于该程序的输出的:在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]
答案 0 :(得分:1)
首先请记住,splice
的参数是:
您需要将一个数组插入另一个数组,因此只需要一个splice
:要插入项目的索引是参数n
,并且您不想删除任何数组项,因此第二个参数应为0
,然后指定要添加到 add 的项,只需扩展到splice
参数列表的其余部分即可:
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