显示数组的其余内容
问题描述:
我想使用FOR循环来显示数组的内容。显示数组的其余内容
我想创建的函数与underscore.js _.rest函数类似,只不过目标是使用FOR循环。
rest(anyArray,n);
所以如果我要输入“rest([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;
}
}
答
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;
}
答
,导致 “不工作” 的部分为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会容易得多。
该方法已经存在于'Array'上。 [它被称为'切片'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/slice)。 '[1,2,3,4,5] .slice(3)'=>'[4,5]'。 – 2013-02-25 23:51:41