Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. function deepEqual(obj1, obj2) {
  2. if (obj1 === obj2) {
  3. return true;
  4. } else if (isObject(obj1) && isObject(obj2)) {
  5. if (Object.keys(obj1).length !== Object.keys(obj2).length) { return false; }
  6. for (var prop in obj1) {
  7. if (!deepEqual(obj1[prop], obj2[prop])) {
  8. return false;
  9. }
  10. }
  11. return true;
  12. }
  13.  
  14. // Private
  15. function isObject(obj) {
  16. if (typeof obj === "object" && obj != null) {
  17. return true;
  18. } else {
  19. return false;
  20. }
  21. }
  22. }
  23.  
  24. function compareValues(key, order='asc') {
  25. return function(a, b) {
  26. if(!a.hasOwnProperty(key) ||
  27. !b.hasOwnProperty(key)) {
  28. return 0;
  29. }
  30.  
  31. const varA = (typeof a[key] === 'string') ?
  32. a[key].toUpperCase() : a[key];
  33. const varB = (typeof b[key] === 'string') ?
  34. b[key].toUpperCase() : b[key];
  35.  
  36. let comparison = 0;
  37. if (varA > varB) {
  38. comparison = 1;
  39. } else if (varA < varB) {
  40. comparison = -1;
  41. }
  42. return (
  43. (order == 'desc') ?
  44. (comparison * -1) : comparison
  45. );
  46. };
  47. }
  48.  
  49. function createNewArray(button){
  50.  
  51. let newArray = arrayPadrao.map(function(element){
  52.  
  53. if (deepEqual(element, button)){
  54. return changeActive(button);
  55. }
  56.  
  57. else{
  58. return element;
  59. }
  60.  
  61. });
  62.  
  63. return newArray;
  64.  
  65. function changeActive(obj){
  66. obj.active = !obj.active;
  67. return obj;
  68. }
  69. }
  70.  
  71.  
  72.  
  73. let arrayPadrao = [
  74. {
  75. "active": false,
  76. "datetime": "1980-12-05"
  77. },
  78. {
  79. "active": true,
  80. "datetime": "1991-03-15"
  81. }
  82. ];
  83.  
  84. let botao = JSON.parse(JSON.stringify(arrayPadrao[0]));
  85.  
  86. let arrayObjetos = JSON.parse(JSON.stringify(arrayPadrao));
  87.  
  88.  
  89. console.log("antes do click");
  90. console.log(arrayObjetos);
  91. console.log("botao");
  92. console.log(botao);
  93.  
  94. console.log("depois do primeiro click");
  95. arrayObjetos = createNewArray(botao);
  96. console.log(arrayObjetos);
  97. console.log("botao");
  98. console.log(botao);
  99.  
  100. console.log("depois do segundo click")
  101. arrayObjetos = createNewArray(botao);
  102. console.log(arrayObjetos);
  103. console.log("botao");
  104. console.log(botao);
  105.  
  106.  
  107. console.log("array em ordem");
  108. console.log(arrayObjetos.sort(compareValues('datetime'),'asc'));
  109.  
  110.  
  111.  
  112. if (!deepEqual(arrayObjetos, arrayPadrao)){
  113. console.log("ativar botao");
  114. }
  115. else{
  116. console.log("desativar botao");
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement