创建复杂的代数函数

时间:2017-08-13 18:29:36

标签: javascript string function algebra

为我的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];
      }

  }
}
}

2 个答案:

答案 0 :(得分:0)

因为您没有返回任何内容(代码中没有return语句):

&#13;
&#13;
    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;
&#13;
&#13;

但是,看起来您的代码并没有完全按照应有的方式运行,这是解决问题的方法:

&#13;
&#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;
&#13;
&#13;

答案 1 :(得分:0)

您还没有包含&#34;返回&#34;声明

这一点的线索(除了没有filter()声明!)是你从return语句开始,但是你收到了result=0

你不必为i == 0

做一个特例

当i == 0时,i%2将等于0,因此&#34;内部&#34; if-then-else将在没有undefined段的情况下充分完成工作。

交换+ =和 - =

但是我想知道你是否推翻了if (i==0)+=?你想要添加第0个和所有偶数索引的值,不是吗?并减去奇数?