I'm assuming you have an Object that is a Map and you wanna filter the values based on the key Type right?
you should be using typeof on know the var type:
var test = "2"
console.log(typeof 42);
// expected output: "number"
console.log(typeof 'blubber');
// expected output: "string"
console.log(typeof true);
// expected output: "boolean"
console.log(typeof declaredButUndefinedVariable);
// expected output: "undefined";
You can do the following
var myMap = new Map([[undefined, "fffff"],["2", "uno"], [2, "doios"]]);
for (const key of myMap.keys()) {
if(typeof key === 'string'){
myMap.delete(key);
}
}
console.log(myMap)
Another approach Transform your Map into Array and then proceed on filter the result:
var myMap = new Map([[undefined, "fffff"],["2", "uno"], [2, "doios"]]);
var _typeofKey = 'string'; // you can set typeof key: number , string , boolean , symbol , undefined , object , function
var results = Array.from(a).filter(
function(element){
var key = element[0];
var value = element[1];
if(typeof key === _typeofKey){
return true;
}
return false;
}
)
// new Map without string keys
var newMap = myMap(results);