获取数组中的最大值(最小值)

如题所示,开始敲代码

  • 方案一:给数组先排序(由大到小排序),第一项就是最大值,最后一项是最小值
let ary = [12, 13, 14, 23, 24, 13, 15, 12];
let max = ary.sort((a, b) => b - a)[0];
let min = ary.sort((a, b) => b - a)[ary.length - 1];
console.log(max, min);   // 24 12
  • 方案二:假设第一个值是最大值/最小值,依次遍历数组中后面的每一项,和假设的值进行比较,如果比假设的值要大/小,把当前项赋值给MAX/MIN
let ary = [12, 13, 14, 23, 24, 13, 15, 12];
let max = ary[0],
    min = ary[0];
for (let i = 1; i < ary.length; i++) {
    let item = ary[i];
    item > max ? max = item : null;
    item < min ? min = item : null;
}
console.log(max, min);   // 24 12
  • 方案三:基于Math.max/Math.min配合apply完成
let ary = [12, 13, 14, 23, 24, 13, 15, 12];
let max = Math.max.apply(null,ary);
let min = Math.min.apply(null,ary)
console.log(max, min);   // 24 12
  • 方案四:基于Math.max/Math.min配合eval完成
let ary = [12, 13, 14, 23, 24, 13, 15, 12];
let max = eval("Math.max("+ary.join()+")");
let min = eval("Math.min("+ary.join()+")");
console.log(max, min);   // 24 12
  • 方案五:基于Math.max/Math.min配合ES6展开运算符完成
let ary = [12, 13, 14, 23, 24, 13, 15, 12];
let max = Math.max(...ary);
let min = Math.min(...ary)
console.log(max, min);   // 24 12
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。