首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数不应更改输入数组(Javascript)

函数不应更改输入数组(Javascript)
EN

Stack Overflow用户
提问于 2022-08-22 21:33:54
回答 1查看 103关注 0票数 0

我试着解决代码战的编码难题。我的解决方案通过了所有测试,但其中一项测试如下:

应该是纯的,即不对原始数组进行变异,您的函数不应该对输入数组进行变异:期望[ 2, 5, 5, 7, 7, 10, 10, 10, 10, 10 ][ 2, 5, 3, 7, 1, 10, 4, 6, 8, 9 ]完全相等。

这是我对挑战的解决方案: Bubblesort一次

代码语言:javascript
复制
function bubblesortOnce(a) {
  let newArr = [];
  for (let i = 0; i < a.length; i++) {
    if (a[i] > a[i + 1]) {
      newArr[i] = a[i + 1];
      a[i + 1] = a[i];
    } else {
      newArr[i] = a[i];
    }
  }
  return newArr;
}

有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2022-08-22 21:39:04

函数不应更改输入数组。

输入数组是传递到函数中的数组。

突变是另一个用来改变事物价值的词。

要停止更改输入数组,我们可以使用扩展算子 (.)将输入数组的每个元素复制到一个新数组中,然后更改该新数组:

下面的代码片段使用了一个新的"passedArray“输入,然后将该输入与扩展操作符复制到一个新的数组中:

代码语言:javascript
复制
function bubblesortOnce(passedArray) {
  let a = [...passedArray]; //copy the array
  let newArr = [];
  for (let i = 0; i < a.length; i++) {
    if (a[i] > a[i + 1]) {
      newArr[i] = a[i + 1];
      a[i + 1] = a[i];
    } else {
      newArr[i] = a[i];
    }
  }
  return newArr;
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73451213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档