递归数组反转Javascript
Recursive Array Reversal Javascript
因此,我们在编程类中使用此作业练习函数式javascript,但我无法使其正常工作。如有任何建议,我们将不胜感激。除了尸体以外,所有的东西都给了我使用。以下是我的想法:(它总是只向我发送第一个数组索引内容,而不是所有内容都颠倒过来。我试着将其更改为
if(arr.length <= 1) return arr;
但这从未触及基本情况。)
function ReverseArray(arr) {
//base case
if(arr.length == 1)
{
return arr[0];
}
if(arr.length == 0)
{
return 0;
}
var head = arr.pop;
var newArr = [head, ReverseArray(arr)];
return newArr;
}
x = y <--assignment
z == y <-- comparison
查看您的代码:
if(arr.length = 1)
需要
if(arr.length == 1)
与零检查相同
而且你没有打电话给pop
var head = arr.pop;
你需要插入
var head = arr.pop();
这是使用三元运算符在单行中执行操作的最精确、最干净的方法。
function reverse(arr) {
return arr.length < 2 ? arr : [arr.pop()].concat(reverse(arr));
}
console.log(reverse([4, 3, 3, 1]));
这里有一个可运行的带有工作函数的示例。仅供参考,还有一个内置函数可以为您完成此操作。
我认为,除了与赋值/比较运算符混淆之外,当您构建结果数组时,应该使用array.concat()来连接您的数组,而不是构建一个新数组,其中第二项是数组本身。
var a = [1,2,3,4,5];
console.log(ReverseArray(a));
function ReverseArray(arr) {
if(arr.length < 2) {
return arr;
} else {
return [arr.pop()].concat(ReverseArray(arr));
}
}
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 将Javascript数组发送到控制器ASP.NET MVC
- JavaScript数组包含一个值
- 将JavaScript数组传递给函数
- javascript:数组循环
- 将数据存储在javascript数组中以供进一步使用
- 在Javascript数组中查找绝对最大值
- JavaScript数组优化以提高性能
- 在javascript数组中分散数字
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript数组动态
- javascript数组元素是否知道其封闭数组
- 将 JSON 数组解析为 JavaScript 数组
- 将Transform和Instance Variable转换为对象的JavaScript数组
- 使用Web Html表单创建Javascript数组
- 从重复的javascript数组结果集中只获取一行
- 如何为Javascript数组()的使用准备PHP变量
- Javascript数组和函数
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)