有一个参数数组反向功能。 (Jav​​aScript的) [英] Reverse array function with one parameter. (JavaScript)

查看:230
本文介绍了有一个参数数组反向功能。 (Jav​​aScript的)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个问题想编写一个函数体递归扭转数组,但只有一个参数。

 函数ReverseArray(ARR){  变种I = 0;
  变种J = arr.length - 1;  如果(ⅰ&所述; j)条{
    变种临时=改编[I]
    改编[I] = ARR [J]。
    ARR [J] =温度;
    返回ReverseArray(ARR);
  }  返回ARR;
}

我知道这不会工作,因为变量将在函数调用自身重新初始化。

我只是在寻找在这一点上的一些想法,因为我卡住了。


解决方案

首先,谁可能会寻找扭转了的真正的问题,而不是功课,使用数组<其他人href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse\"相对=nofollow> Array.reverse ,不要浪费你的时间来实现它自己。

如果你绝对必须的,那么这里的伎俩是通过一个较小的阵列(减去第一个和最后一个元素使用的)当您递归和重建的最终数组作为你放松用的 CONCAT 。例如:

\r
\r

函数ReverseArray(ARR){\r
  如果(arr.length 2){\r
    返回ARR;\r
  }其他{\r
    变种第一= ARR [0];\r
    VAR最后= ARR [arr.length - 1];\r
    。返回[最后] .concat(ReverseArray(arr.slice(1,长度 - 1)))CONCAT([首页]);\r
  }\r
\r
}\r
\r
警报(ReverseArray([1,2,3,4,5]));

\r

\r
\r

I'm having a problem trying to write a body for a function that recursively reverse an array, but only has one parameter.

function ReverseArray(arr) {

  var i = 0;
  var j = arr.length - 1;

  if (i < j) {
    var temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
    return ReverseArray(arr);
  }

  return arr;
}   

I realize this won't work because the variables will be re-initialized when the function calls itself.

I'm just looking for some ideas at this point, because i'm stuck.

解决方案

First, for other people who might be looking to reverse an array for a real problem rather than homework, use Array.reverse, don't waste you time trying to implement it yourself.

If you absolutely must, then the trick here would be to pass a smaller array (minus the first and last elements by using slice) when you recurse and rebuild the final array as you unwind using concat. For example:

function ReverseArray(arr) {
  if (arr.length < 2) {
    return arr;
  } else {
    var first = arr[0];
    var last = arr[arr.length - 1];
    return [last].concat(ReverseArray(arr.slice(1, length - 1))).concat([first]);
  }

}

alert(ReverseArray([1,2,3,4,5]));

这篇关于有一个参数数组反向功能。 (Jav​​aScript的)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆