• javascript 中的借鸡生蛋


    如题所说,其实指的是 js 中的内置函数和 apply 的结合使用。这种用法很讨巧,读过 jQuery 源码的小伙伴都知道,它在里面被应用的非常广泛和精妙!

    梨子:找出一个数组中的最大值和最小值

    普遍的做法就是循环遍历数组,进行比较,写出来的代码看着像石榴姐一样,虽然是一个美女,但总感觉有点别扭,怎样把她变成像秋香一样优雅迷人呢?还记得 Math.max 吗

    var numbers = [5, 6, 2, 3, 7];
    
    /* using Math.min/Math.max apply */
    var max = Math.max.apply(null, numbers); /* This about equal to Math.max(numbers[0], ...) or Math.max(5, 6, ..) */
    var min = Math.min.apply(null, numbers);

    假如数组很大怎么办呢?把它切段循环传入

    function minOfArray(arr) {
      var min = Infinity;
      var QUANTUM = 32768;
    
      for (var i = 0, len = arr.length; i < len; i += QUANTUM) {
        var submin = Math.min.apply(null, arr.slice(i, Math.min(i + QUANTUM, len)));
        min = Math.min(submin, min);
      }
    
      return min;
    }
    
    var min = minOfArray([5, 6, 2, 3, 7]);

    参考:MDN

  • 相关阅读:
    Spring温故而知新 – bean的装配
    Lambda表达式和表达式树
    委托的内部机制
    委托(C#)
    linux wdcp安装
    linux各个文件夹作用
    linux基本命令
    python调用html内的js方法
    Win10在右键菜单添加“在此处打开命令窗口”设置项
    python read文件的r和rb的区别
  • 原文地址:https://www.cnblogs.com/kuangliu/p/5132767.html
Copyright © 2020-2023  润新知