显示数组的其余内容

时间:2013-02-25 23:47:31

标签: javascript for-loop

我正在尝试使用FOR循环来显示数组的内容。

我想要创建的函数类似于underscore.js _.rest函数,但目标是使用FOR循环。

休息(anyArray,n);

所以,如果我要输入“休息([1,2,3,4,5],3);”,我想返回“[4,5]”。

这是我拥有的,但不起作用:

rest: function (anyArray, n) {
  var isArray = (anyArray instanceof Array),
    isNum = (typeof n === 'number'),
    result = new Array,
    valRange = (n >= 0);
  if (isArray && isNum) {
    for (len = anyArray.length, i = 0, j = (len - (n + len)); i < j, n < len; i++, j++) {
      result[i] = anyArray[j];
    }
    return result;
  }
}

2 个答案:

答案 0 :(得分:1)

rest: function (anyArray, n) {
    return anyArray.slice(n);
}

rest: function (anyArray, n) {
    var output = [];
    for (; n < anyArray.length; n++) {
        output.push(anyArray[n]);
    }
    return output;
}

答案 1 :(得分:0)

导致“无法正常工作”的部分是j = (len - (n + len)):基本上,您说j = n,然后您在i < j时循环。我希望你真正想要的是j < len。另外,您应该添加var关键字:

rest: function(anyArray, n){
    var isArray = (anyArray instanceof Array),
        isNum = (typeof n === 'number'),
        result = [];
    if (isArray && isNum) {
        for (var len = anyArray.length, i = 0, j = n; j < len; i++, j++) {
            result[i] = anyArray[j];
        }
        return result;
    }
    // else?
}

当然,只使用原生slice method会更容易。