问题描述
我不知道如何使用splice(),所以我使用了另一种方法来解决问题。 我在这里做错了什么?
function frankenSplice(arr1,arr2,n) {
let result = [];
let array1 = arr1.toString();
let array2 = arr2.toString();
for (let i = 0; i<array1.length; i++){
for (let j = 0; j<array2.length; j++){
if (array1[j] == n){
return result += array2[j] + array1 + array2.slice(1);
}
}
}
return result;
}
console.log(frankenSplice([1,2,3],[4,5],1));
它应该返回[4,1,2,3,5],但是我的代码返回[41,3,5]。 我想使用arr1.split(),所以逗号之间在4到1之间,但是它说arr1.split不是函数。
我觉得自己离答案很近,但也觉得我的逻辑可能是完全错误的。
请帮助,谢谢!
解决方法
- 第一行使用spread syntax将数组的元素复制到另一个数组中,因为根据规则,不应更改原始的orray。
- 第二行使用
splice
,从第n
个索引开始,从数组中删除0
个项目,然后将array1
中的所有项目复制到其中。 - 然后我们返回了复制的数组。
函数frankenSplice(arr1,arr2,n){
var a = [... arr2]
a.splice(n,0,... arr1);
返回一个;
}