JsFn.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. class JSFun {
  2. /**
  3. * 关键字去重
  4. * @param arr 数组
  5. * @param key 关键字
  6. * @returns 去重后
  7. */
  8. unique(arr, key) {
  9. let res = []
  10. let obj = {}
  11. for (let i = 0; i < arr.length; i++) {
  12. if (!obj[arr[i][key]]) {
  13. res.push(arr[i])
  14. obj[arr[i][key]] = true
  15. }
  16. }
  17. return res
  18. }
  19. /**
  20. * 同步睡眠
  21. * @param {Number} ms
  22. * @returns
  23. */
  24. sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms))
  25. /**
  26. * 多维数组转一维
  27. * @param {Array} arr
  28. * @returns
  29. */
  30. flatten(arr) {
  31. return [].concat(
  32. ...arr.map(x => (Array.isArray(x) ? this.flatten(x) : x))
  33. )
  34. }
  35. /**
  36. * 随机数
  37. * @param {minNum} minNum 最小值
  38. * @param {maxNum} maxNum 最大值
  39. * @return {Number} 返回一个最大值和最小值之间的随机数
  40. */
  41. randomNum(minNum, maxNum) {
  42. switch (arguments.length) {
  43. case 1:
  44. return parseInt(Math.random() * minNum + 1, 10)
  45. case 2:
  46. return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10)
  47. default:
  48. return 0
  49. }
  50. }
  51. }
  52. export default JSFun()