shuffle.js 476 B

123456789101112131415161718192021222324
  1. var random = require('./random')
  2. var values = require('./values')
  3. /**
  4. * 将一个数组随机打乱,返回一个新的数组
  5. *
  6. * @param {Array} array 数组
  7. * @return {Array}
  8. */
  9. function shuffle (array) {
  10. var index
  11. var result = []
  12. var list = values(array)
  13. var len = list.length - 1
  14. for (; len >= 0; len--) {
  15. index = len > 0 ? random(0, len) : 0
  16. result.push(list[index])
  17. list.splice(index, 1)
  18. }
  19. return result
  20. }
  21. module.exports = shuffle