如何使用slice方法拆分数组?

问题描述

此挑战的链接: https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice

我不知道如何使用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);
返回一个;
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...