sample.js 519 B

123456789101112131415161718
  1. var isArrLike = require('./isArrLike');
  2. var clone = require('./clone');
  3. var values = require('./values');
  4. var random = require('./random');
  5. var swap = require('./swap');
  6. exports = function(obj, n) {
  7. var sample = isArrLike(obj) ? clone(obj) : values(obj);
  8. var len = sample.length;
  9. n = Math.max(Math.min(n, len), 0);
  10. var last = len - 1;
  11. for (var i = 0; i < n; i++) {
  12. var rand = random(i, last);
  13. swap(sample, i, rand);
  14. }
  15. return sample.slice(0, n);
  16. };
  17. module.exports = exports;