反转数组的顺序并返回其大小javascript

Reverse order of an array and return the size of it javascript

本文关键字:javascript 返回 数组 顺序      更新时间:2023-09-26

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

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
}

基本上,在这种情况下,我需要变量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。希望你能帮助我。感谢大家

如果我理解正确,你想把一个数字,比如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