在廖雪峰的JavaScript的教程中,看到了...rest的使用,并试了一下里面的小练习,定义一个函数,并且不指定输入项的大小,并进行求和操作。
function sum(...rest) {
//console.info(rest)
li = 0;
if(arguments.length>0){
for(var i =0;i<rest.length;i++){
li+=rest[i]
console.info('第'+i+'次循环rest[i]的值:'+rest[i])
//注释掉的两行和上面的循环效果一样
// for(var x of rest){
// li+=x;a
}return li;
}else
return 0;
}
// 测试:
var i, args = [];
for (i=1; i<=100; i++) {
args.push(i);
}
if (sum() !== 0) {
console.log('测试失败: sum() = ' + sum());
} else if (sum(1) !== 1) {
console.log('测试失败: sum(1) = ' + sum(1));
} else if (sum(2, 3) !== 5) {
console.log('测试失败: sum(2, 3) = ' + sum(2, 3));
} else if (sum.apply(null, args) !== 5050) {
console.log('测试失败: sum(1, 2, 3, ..., 100) = ' + sum.apply(null, args));
} else {
console.log('测试通过!');
}
网友评论