首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用递归在数组中查找坐标

使用递归在数组中查找坐标
EN

Stack Overflow用户
提问于 2015-05-16 23:43:29
回答 1查看 90关注 0票数 0

我需要使用下划线JS和递归来遍历数组,并将坐标推送到新的数组中。在递归调用函数之前,代码是有效的,那么我如何改进递归集成呢?

代码语言:javascript
复制
var array = [[1, 23, 5, 6],
         [7, 9, 37, 34]];

function search(num, column) {
  var boolean = _.contains(array[column], num),
      coordinates = [];

  if (boolean === true) {
    coordinates.push(_.indexOf(array[column], num));
    coordinates.push(column);
    console.log(coordinates);

  } else if (boolean === false) {
    return search(num, column++); 

  } else if (column === array.length) {
    if(boolean === false) {
      console.log('No number present');
    }
  }
}


search(9, 0);
EN

回答 1

Stack Overflow用户

发布于 2015-05-16 23:54:05

您对column === array.length的检查位置错误,永远不会被调用。此外,column++将增加列的值,但返回旧值,因此每次都会调用列为0的search。请改用column + 1

试试这个:

代码语言:javascript
复制
function search(num, column) {
  if (!column) {
    // This statement allows you to omit the column parameter.
    // So you can call 'search(9);' and it will assume the column is 0.
    column = 0;
  }
  if (column >= array.length) {
    console.log('No number present');
    return null;
  }
  if (_.contains(array[column], num)) {
    var coordinates = [_.indexOf(array[column], num), column];
    console.log(coordinates);
    return coordinates;
  } else {
    return search(num, column + 1);
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30277624

复制
相关文章

相似问题

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