Javascript-如何使用函数找到最小的数组?

时间:2016-05-05 14:57:46

标签: javascript

我有以下功能

function min() {
  var array = Array.prototype.slice.call(arguments);
  array = array.length === 1 && isNumeric(array[0].length) ? array[0] : array;

  var min = array[0];
  var i, count;
  for (i = 1, count = array.length; i < count; i++) {
    if (array[i] < min) min = array[i];
  }
  return min;
},

我不明白为什么放入以下行,目的是什么?

array = array.length === 1 && isNumeric(array[0].length) ? array[0] : array;

4 个答案:

答案 0 :(得分:3)

  • condition ? returnIfTrue : returnIfFalse被称为三元运算符。
  • array.length === 1 && isNumeric(array[0].length)表示“如果array有一个元素且第一个元素本身就是一个数组”。
  • a = ternaryOperator表示将a设置为三元运算符的结果。

这三者意味着您可以通过两种方式致电min

min(1, 2, 3)min([1, 2, 3])

答案 1 :(得分:2)

该行允许直接将数字作为参数传递或将单个数组作为第一个参数传递:

min(1,2,3);
min([1,2,3]);

答案 2 :(得分:1)

我会将此函数重构为

var min = (...args) => Array.isArray(args[0]) ? Math.min(...args[0]) : Math.min(...args);

document.write("<pre>" + min([1,2,3,4,-1]) + "</pre>");
document.write("<pre>" + min(1,2,-3,4,-1) + "</pre>");

答案 3 :(得分:-1)

您的代码令人困惑,请尝试做类似的事情

var min = 1000000;
 var temp = 0;
if ( element < min){
 temp = element; 
 min = element;
 }