为我的JavaScript类做一个赋值,要求我创建一个函数,该函数从第一个开始添加所有其他索引,并减去之前未添加的所有索引并生成总和。我相信下面的函数应该可以工作,但似乎返回undefined。
function questionSix(){
let result = 0;
for(let i = 0; i < arguments.length; i++){
if(i == 0){
result += arguments[i];
}else{
if(i % 2 != 0){
result += arguments[i];
}
if(i % 2 == 0){
result -= arguments[i];
}
}
}
}
答案 0 :(得分:0)
因为您没有返回任何内容(代码中没有return语句):
function questionSix(){
let result = 0;
for(let i = 0; i < arguments.length; i++) {
if(i == 0){
result += arguments[i];
}else{
if(i % 2 != 0){
result += arguments[i];
}
if(i % 2 == 0){
result -= arguments[i];
}
}
}
return result;
}
console.log(questionSix(1,6,5,7,8,9,9,8,4,5));
&#13;
但是,看起来您的代码并没有完全按照应有的方式运行,这是解决问题的方法:
function questionSix(){
let result = 0; // the sum
let array = []; // the numbers added
for(let i = 0; i < arguments.length; i++) {
// was the number added ?
if(array.indexOf(i) > -1){ // Yes
result += arguments[i]; // add it to the sum
}else{ // No
result -= arguments[i]; // subtract it from the sum
array.push(arguments[i]); // add it to the array
}
}
return result; // return the sum
}
console.log(questionSix(1,6,5,7,8,9,9,8,4,5));
&#13;
答案 1 :(得分:0)
这一点的线索(除了没有filter()
声明!)是你从return
语句开始,但是你收到了result=0
。
当i == 0时,i%2将等于0,因此&#34;内部&#34; if-then-else将在没有undefined
段的情况下充分完成工作。
但是我想知道你是否推翻了if (i==0)
和+=
?你想要添加第0个和所有偶数索引的值,不是吗?并减去奇数?