【问题标题】:How to use slice() method to split an array?如何使用 slice() 方法拆分数组?
【发布时间】:2020-12-04 17:03:09
【问题描述】:

此挑战的链接: 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,2,3,5]。 我想用 arr1.split() 所以在 4 和 1 之间会有一个逗号,但是它说 arr1.split 不是一个函数。

我觉得我很接近答案,但也觉得我的逻辑可能完全错误。

请帮忙,谢谢!

【问题讨论】:

  • 哎哟。如果你做得好,这真的是一条线。是不是想弄清楚这一点比谷歌搜索拼接功能更令人生畏?

标签: javascript arrays for-loop split slice


【解决方案1】:
  • 第一行使用spread syntax 将数组的元素复制到另一个数组中,因为根据规则不应更改原始数组。
  • 第二行使用splice,并从nth 索引开始,从数组中删除0 项,然后将array1 中的所有项复制到其中。
  • 然后我们返回了复制的数组。

函数 frankenSplice(arr1, arr2, n) {
var a = [...arr2]
a.splice(n, 0, ...arr1);
返回一个;
}

【讨论】:

  • splice 做了两件事。它将项目添加到数组并从数组中删除项目。它实际上应该是两个独立的功能,但他们就是这样做的。第一个参数告诉它从哪里开始添加或删除。第二个参数告诉它要删除多少项,之后,传递给函数的所有其他参数都将添加到数组的第 n 个索引处。
  • @yg2160 - 我不知道你是否理解正确。我知道您了解如何将我的答案复制到评论中。希望解释对您有所帮助。
  • 你好,splice()方法的解释很清楚,我会多练习的。谢谢!
猜你喜欢
  • 2014-06-09
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 2014-04-27
  • 2013-03-28
  • 1970-01-01
相关资源
最近更新 更多