contrastData.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. //比较对象的值
  2. export function contrastObj(newval, oldval) {
  3. let reg = /^[A-Za-z]+$/;
  4. for (let key in newval) {
  5. if (typeof newval[key] == 'string') {
  6. if (reg.test(key) && !(newval[key] instanceof Array) && (newval[key] != oldval[key] && (newval[key] || oldval[key]))) {
  7. return true
  8. }
  9. }
  10. }
  11. return false
  12. }
  13. //比较数组的值(有序)
  14. export function contrastList(newlist, oldlist) {
  15. if (newlist.length != oldlist.length) {
  16. return true
  17. }
  18. let reg = /^[A-Za-z]+$/;
  19. for (var i = 0; i < newlist.length; i++) {
  20. for (let newitem in newlist[i]) {
  21. for (let olditem in oldlist[i]) {
  22. if (!reg.test(newitem)) {
  23. delete newlist[i].newitem
  24. }
  25. if (!reg.test(oldlist[i])) {
  26. delete oldlist[i].olditem
  27. }
  28. if (newitem == olditem) {
  29. if (!(newlist[i][newitem] instanceof Array)) {
  30. if (newlist[i][newitem] != oldlist[i][olditem]) {
  31. console.log(newitem, i, newlist[i][newitem], oldlist[i][olditem])
  32. return true
  33. }
  34. }
  35. }
  36. }
  37. }
  38. }
  39. return false;
  40. }
  41. //比较数组的值(无序)
  42. export function contrastList2(newlist, oldlist) {
  43. if (newlist.length != oldlist.length) {
  44. return true
  45. }
  46. let reg = /^[A-Za-z]+$/;
  47. for (var i = 0; i < newlist.length; i++) {
  48. for (var j = 0; j < oldlist.length; j++) {
  49. for (let newitem in newlist[i]) {
  50. for (let olditem in oldlist[j]) {
  51. if (newlist[i].id == oldlist[j].id) {
  52. if (!reg.test(newitem)) {
  53. delete newlist[i].newitem
  54. }
  55. if (!reg.test(oldlist[j])) {
  56. delete oldlist[j].olditem
  57. }
  58. if (newitem == olditem) {
  59. if (!(newlist[i][newitem] instanceof Array)) {
  60. if (newlist[i][newitem] != oldlist[j][olditem]) {
  61. return true
  62. }
  63. }
  64. }
  65. }
  66. }
  67. }
  68. }
  69. }
  70. return false;
  71. }
  72. //比较指定的几个字段数组的值(有序)
  73. export function contrastListKey(newlist, oldlist, keyNames) {
  74. if (newlist.length != oldlist.length) {
  75. return true
  76. }
  77. let reg = /^[A-Za-z]+$/;
  78. for (var i = 0; i < newlist.length; i++) {
  79. for (let newitem in newlist[i]) {
  80. if (keyNames.includes(newitem)) {
  81. for (let olditem in oldlist[i]) {
  82. if (!reg.test(newitem)) {
  83. delete newlist[i].newitem
  84. }
  85. if (!reg.test(oldlist[i])) {
  86. delete oldlist[i].olditem
  87. }
  88. if (newitem == olditem) {
  89. if (!(newlist[i][newitem] instanceof Array)) {
  90. if (newlist[i][newitem] != oldlist[i][olditem]) {
  91. console.log(newitem, i, newlist[i][newitem], oldlist[i][olditem])
  92. return true
  93. }
  94. }
  95. }
  96. }
  97. }
  98. }
  99. }
  100. return false;
  101. }