utils.js 955 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. function arrayMin( array ) {
  2. if ( array.length === 0 ) return Infinity;
  3. let min = array[ 0 ];
  4. for ( let i = 1, l = array.length; i < l; ++ i ) {
  5. if ( array[ i ] < min ) min = array[ i ];
  6. }
  7. return min;
  8. }
  9. function arrayMax( array ) {
  10. if ( array.length === 0 ) return - Infinity;
  11. let max = array[ 0 ];
  12. for ( let i = 1, l = array.length; i < l; ++ i ) {
  13. if ( array[ i ] > max ) max = array[ i ];
  14. }
  15. return max;
  16. }
  17. const TYPED_ARRAYS = {
  18. Int8Array: Int8Array,
  19. Uint8Array: Uint8Array,
  20. // Workaround for IE11 pre KB2929437. See #11440
  21. Uint8ClampedArray: typeof Uint8ClampedArray !== 'undefined' ? Uint8ClampedArray : Uint8Array,
  22. Int16Array: Int16Array,
  23. Uint16Array: Uint16Array,
  24. Int32Array: Int32Array,
  25. Uint32Array: Uint32Array,
  26. Float32Array: Float32Array,
  27. Float64Array: Float64Array
  28. };
  29. function getTypedArray( type, buffer ) {
  30. return new TYPED_ARRAYS[ type ]( buffer );
  31. }
  32. export { arrayMin, arrayMax, getTypedArray };