contrastData.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. }