38 lines
		
	
	
		
			768 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			768 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // original sourc
 | |
| // https://github.com/rackt/react-redux/blob/master/src/utils/shallowEqual.js
 | |
| // MIT license
 | |
| export default function shallowEqual(objA, objB) {
 | |
|   if (objA === objB) {
 | |
|     return true;
 | |
|   }
 | |
| 
 | |
|   if (
 | |
|     typeof objA !== 'object' ||
 | |
|     objA === null ||
 | |
|     typeof objB !== 'object' ||
 | |
|     objB === null
 | |
|   ) {
 | |
|     return false;
 | |
|   }
 | |
| 
 | |
|   var keysA = Object.keys(objA);
 | |
|   var keysB = Object.keys(objB);
 | |
| 
 | |
|   if (keysA.length !== keysB.length) {
 | |
|     return false;
 | |
|   }
 | |
| 
 | |
|   // Test for A's keys different from B.
 | |
|   var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);
 | |
|   for (var i = 0; i < keysA.length; i++) {
 | |
|     if (
 | |
|       !bHasOwnProperty(keysA[i]) ||
 | |
|       objA[keysA[i]] !== objB[keysA[i]]
 | |
|     ) {
 | |
|       return false;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   return true;
 | |
| }
 |