The lodash.ismap package provides the _.isMap utility method as a standalone Node.js module. It checks if a value is a Map object using internal object type checking mechanisms, offering cross-environment compatibility and optimal performance.
npm install lodash.ismapvar isMap = require('lodash.ismap');var isMap = require('lodash.ismap');
// Check if value is a Map
isMap(new Map);
// => true
isMap(new WeakMap);
// => false
isMap({});
// => false
isMap([1, 2, 3]);
// => false
isMap(null);
// => falseChecks if a value is classified as a Map object with cross-environment compatibility.
/**
* Checks if `value` is classified as a `Map` object.
*
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a map, else `false`.
*/
function isMap(value);Parameters:
value (*): The value to checkReturns:
boolean: Returns true if value is a map, else falseImplementation Details:
The function uses two different strategies based on the environment:
util.isMap for optimal performance when availableObject.prototype.toStringThe implementation handles cross-browser compatibility issues and provides accurate Map detection across different JavaScript environments, including:
Usage Examples:
var isMap = require('lodash.ismap');
// Standard Map object
var myMap = new Map([['key1', 'value1'], ['key2', 'value2']]);
console.log(isMap(myMap)); // => true
// WeakMap (not a Map)
var myWeakMap = new WeakMap();
console.log(isMap(myWeakMap)); // => false
// Plain objects
console.log(isMap({})); // => false
console.log(isMap({ a: 1 })); // => false
// Arrays
console.log(isMap([])); // => false
console.log(isMap([1, 2, 3])); // => false
// Primitives
console.log(isMap(null)); // => false
console.log(isMap(undefined)); // => false
console.log(isMap(42)); // => false
console.log(isMap('string')); // => false
console.log(isMap(true)); // => false
// Edge cases
console.log(isMap(new Set())); // => false
console.log(isMap(new Date())); // => false
console.log(isMap(/regex/)); // => false