数组的反向顺序并返回它的大小javascript

时间:2014-09-25 14:31:29

标签: javascript

我有一个奇怪的问题。我必须实现一个函数count,它反转我已经创建的getNumberSequence函数。 (即:count(getNumberSequence(x))== x,对于所有整数x> 0)。我有我的功能,我也有解决问题的逻辑,但我不知道该怎么做。在我的情况下,我想调用前一个有序数字串,拆分它们并调用最后一个数字。问题是,我怎样才能调用另一个方法的返回?这是我的代码:

function getNumberSequence(number) {
    var result = "";

    if (number <= 0) {
        return result;
    } else {
        var first = true; 
        for (i = 1; i <= number; i++) {
            if (first) {
                first = false;
            } else {
                result += ", ";
            }
            result += i;
        }
    }
    return result
}

基本上我需要在这种情况下使用变量结果在另一个函数中调用它。

function count(s) {
    var d = s. split(', ');
    return d[-1];
}

我知道第二个代码错了,但我不知道如何修复它。我已经实施了一个测试:

test( "Count", function() {
    for (i = 1; i<10000; i = i + 10) {
        equal(count(getNumberSequence(i)) , i, "count(getNumberSequence(" +i + ")) should return    " + i);
    }

我知道答案可能很愚蠢但我昨天第一次开始使用javascript。希望您能够帮助我。谢谢大家

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您希望将一个数字(例如10)传递给第一个函数,并返回一串数字,最多为10,然后返回count读取该字符串并再次返回10(作为整数)?这样就可以了。它接受字符串,将其拆分,并弹出最后一个数字,然后将其转换为整数,然后返回它。

function count(seq) {
  return parseInt(seq.split(', ').pop(), 10);
}

我可以像这样重写它:

function count(seq) {

  // create an array
  var arr = seq.split(', ');

  // grab the last element (a string)
  var lastElement = arr.pop();

  // convert the string to an integer
  var convertedInteger = parseInt(lastElement, 10);

  // return the integer
  return convertedInteger;
}

如果你想使用反向并抓住第一个元素,请执行以下操作:

function count(seq) {
  return parseInt(seq.split(', ').reverse()[0], 10);
}

或者使用shift做同样的事情:

function count(seq) {
  return parseInt(seq.split(', ').reverse().shift(), 10);
}

DEMO