为什么我收到此代码的错误?我想做的就是返回一个包含多个参数的数组。
function multiplyByTwo(a,b,c){
//we have two variables i and ar which is an array
var i,ar=[];
//for loop cycles through 0-2 and multiplies each by two
for(int i=0;i<3;i++){
// arguments[3] // Takes the arguem Follows array indexing notations.
//at i=0, ar[0]=arguments[0]*2, arguments[0]=a*2
//at i=1, ar[1]=arguments[1]*2, arguments[1]=b*2
//at i=2, ar[2]=arguments[2]*2, arguments[2]=c*2
ar[i]=arguments[i]*2;
}
return ar;
}
var result=multiplyByTwo(1,2,3);
Error: SyntaxError: Unexpected identifier
at createScript (vm.js:53:10)
at Object.runInThisContext (vm.js:95:10)
答案 0 :(得分:0)
正如评论中的人员所说,错误的主要原因是Card
中没有int
。重构代码有一些改进/建议,如下所示:
JS
首先,方法function multiplyByTwo(...args){
var i,ar=[];
for(let i=0;i<arguments.length;i++){
ar[i]=arguments[i]*2;
}
return ar;
}
var result=multiplyByTwo(1,2,3,4);
。使用multiplyByTwo(...args)
使您的函数接收动态数量的参数,而不是硬编码为3个固定长度,这样可以提高函数的可伸缩性。
由于您使用的是关键字Spread syntax
,为了使其保持一致,而不是正好循环3次,请将其替换为arguments
,而是赞美之前建议的arguments.length
。当然还有其他更简单和更短的语法可用于实现您正在执行的操作,如下所示
...args