common.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. (function () {
  2. // 数组功能扩展
  3. Array.prototype.each = function (fn) {
  4. fn = fn || Function.K
  5. var a = []
  6. var args = Array.prototype.slice.call(arguments, 1)
  7. for (var i = 0; i < this.length; i++) {
  8. var res = fn.apply(this, [this[i], i].concat(args))
  9. if (res != null) a.push(res)
  10. }
  11. return a
  12. }
  13. // 数组是否包含指定元素
  14. Array.prototype.contains = function (suArr) {
  15. for (var i = 0; i < this.length; i++) {
  16. if (this[i] === suArr) {
  17. return true
  18. }
  19. }
  20. return false
  21. }
  22. // 不重复元素构成的数组
  23. Array.prototype.uniquelize = function () {
  24. var ra = []
  25. for (var i = 0; i < this.length; i++) {
  26. if (!ra.contains(this[i])) {
  27. ra.push(this[i])
  28. }
  29. }
  30. return ra
  31. }
  32. // 两个数组的补集
  33. Array.complement = function (a, b) {
  34. return Array.minus(Array.union(a, b), Array.intersect(a, b))
  35. }
  36. // 两个数组的交集
  37. Array.intersect = function (a, b) {
  38. return a.uniquelize().each(function (o) {
  39. return b.contains(o) ? o : null
  40. })
  41. }
  42. // 两个数组的差集
  43. Array.minus = function (a, b) {
  44. return a.uniquelize().each(function (o) {
  45. return b.contains(o) ? null : o
  46. })
  47. }
  48. // 两个数组并集
  49. Array.union = function (a, b) {
  50. return a.concat(b).uniquelize()
  51. }
  52. window.saveFile = function (fileUrl, fileName, fileMimeType) {
  53. console.log(fileUrl, fileName, fileMimeType)
  54. window.download(fileUrl, fileName, fileMimeType)
  55. }
  56. })()