首页 > 其他分享 >js.hw3

js.hw3

时间:2022-12-29 12:45:10浏览次数:42  
标签:function return js let array expression hw3 op

// 数组的下标表示偏移量
// 作业 1
// 参数是一个只包含数字的 array
// 求 array 的乘积
function product(array) {
  let s = 1;
  for (let i = array[0]; i < array.length; i++) {
    s *= array[i];
  }
  return s;
}

// 作业 2
// 返回一个数的绝对值
function abs(n) {
  return n < 0 ? -n : n;
}

// 作业 3
// 参数是一个只包含数字的 array
// 求 array 中所有数字的平均数
function average(array) {
  let n = array.length
  return sum(array) / n;
}

// 作业 4
// 参数是一个只包含数字的 array
// 求 array 中最小的数字
// 函数定义是
function min(array) {
  let m = array[0];
  for(let i = 0; i < array.length; i++) {
      if (m > array[i]) {
        m = array[i];
      }
  }
  return m;
}

// 作业 5
/*
参数是一个数字 n
返回以下序列的结果
1 - 2 + 3 - 4 + 5 ... n
*/
function sum1(n) {
  let s = 0;
  for (let i = 1; i <= n; i++) {
      if (i % 2 == 0) {
        s -= i;
      } else {
        s += i;
      }
  }
  return s;
}

// 作业 6
/*
参数是一个数字 n
返回以下序列的结果
1 + 2 - 3 + 4 - ... n
*/
function sum2(n) {
  let s = 1;
  for (let i = 2; i <= n; i++) {
      if (i % 2 == 0) {
        s += i;
      } else {
        s -= i;
      }
  }
  return s;
}

// 作业 7
/*
实现 fac 函数
接受一个参数 n
返回 n 的阶乘, 1 * 2 * 3 * ... * n
*/
function fac(n) {
  if (n == 1) return 1;
  return n * fac(n - 1);
}


/*作业 8
实现 apply 函数
参数如下
op 是 string 类型, 值是 '+' '-' '*' '/' 其中之一
a b 分别是 2 个数字
根据 op 对 a b 运算并返回结果(加减乘除)
*/
function apply(op, a, b) {
    if(op == '+') {
        return a + b
    }
    if(op == '-') {
        return a - b
    }
    if(op == '*') {
        return a * b
    }
    if(op == '/') {
        return a / b
    }
}


/*
作业 9
实现 applyList 函数
op 是 '+' '-' '*' '/' 其中之一
oprands 是一个只包含数字的 array
根据 op 对 oprands 中的元素进行运算并返回结果
例如, 下面的调用返回 -4
var n = applyList('-', [3, 4, 2, 1])
log(n)
// 结果是 4, 用第一个数字减去所有的数字
*/
function applyList(op, oprands) {
  let result = oprands[0];
  for (let i = 1; i < oprands.length; i++) {
    result = apply(op, result, oprands[i]);
  }
  return result;
}

/*
作业 10
实现 applyCompare 函数
参数如下
expression 是一个 array(数组), 包含了 3 个元素
第一个元素是 op, 值是 '>' '<' '==' 其中之一
剩下两个元素分别是 2 个数字
根据 op 对数字运算并返回结果(结果是 true 或者 false)
*/
function applyCompare(expression) {
  let op = expression[0]
  let a = expression[1]
  let b = expression[2]
  if (op == '<') {
      return a < b
  }
  if (op == '>') {
      return a > b
  }
  if (op == '==') {
      return a == b
  }
}


/*作业 11
实现 applyOps 函数
参数如下
expression 是一个 array
expression 中第一个元素是上面几题的 op, 剩下的元素是和 op 对应的值
根据 expression 运算并返回结果
*/
function applyOps(expression) {
  let op = expression[0];
    if (op == '+' || op == '-' || op == '*' || op == '/' ) {
      return applyList(op, expression.slice(1));
    } else if(op == '<' || op == '>' || op == '==') {
      return applyCompare(expression);
    }
}


标签:function,return,js,let,array,expression,hw3,op
From: https://www.cnblogs.com/echoT/p/17012225.html

相关文章