Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选中映射键类型js_Javascript - Fatal编程技术网

Javascript 选中映射键类型js

Javascript 选中映射键类型js,javascript,Javascript,我正在尝试检查映射键类型,以确定应该如何过滤它。我目前的方法是检查myMap.keys().next().value这似乎是未定义的,而不管它是字符串还是int等 我需要检查键是整数还是空。到目前为止,我已经尝试过: !key.next().value // for no key Number.isInteger(key.next().value) // for a numbered key 这些检查不会触发任何“我的if”语句。Number.i仅当参数为Number时才进行INTEGER验证

我正在尝试检查映射键类型,以确定应该如何过滤它。我目前的方法是检查
myMap.keys().next().value
这似乎是
未定义的
,而不管它是字符串还是int等

我需要检查键是整数还是空。到目前为止,我已经尝试过:

!key.next().value // for no key
Number.isInteger(key.next().value) // for a numbered key

这些检查不会触发任何“我的if”语句。

Number.i仅当参数为Number时才进行INTEGER验证。 如果您验证数字,isInteger(“1”)将始终返回false。 要验证一个键是否为数字,请尝试使用正则表达式,例如:

/^\d+$/.test(key.next().value)
这在两种情况下都很好 /^\d+$/测试(“1”) 和
/^\d+$/.test(1)

Number.i仅当参数为Number时才进行INTEGER验证。 如果您验证数字,isInteger(“1”)将始终返回false。 要验证一个键是否为数字,请尝试使用正则表达式,例如:

/^\d+$/.test(key.next().value)
这在两种情况下都很好 /^\d+$/测试(“1”) 和
/^\d+$/.test(1)

在使用方法链接时,这是一个非常常见的错误
map.keys()。只需将myMap.keys()返回值保存在变量中,然后调用next().value进行检查。代码如下所示:

let myMap=newmap()
myMap.set(“0”、“零”)
myMap.set(1,“一”)
让迭代器=myMap.keys()
log(iterator.next().value的类型)

console.log(typeof iterator.next().value)
使用方法链接时,这是一个非常常见的错误
map.keys()。只需将myMap.keys()返回值保存在变量中,然后调用next().value进行检查。代码如下所示:

let myMap=newmap()
myMap.set(“0”、“零”)
myMap.set(1,“一”)
让迭代器=myMap.keys()
log(iterator.next().value的类型)

console.log(typeof iterator.next().value)
我假设你有一个映射对象,你想根据键类型过滤这些值,对吗

您应该在了解var类型时使用:

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";
您可以执行以下操作

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)
另一种方法是将地图转换为数组,然后继续过滤结果:

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);

我假设你有一个映射对象,你想根据键类型过滤值,对吗

您应该在了解var类型时使用:

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";
您可以执行以下操作

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)
另一种方法是将地图转换为数组,然后继续过滤结果:

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);

你在第二行缺少一个右括号,在
value
之后,你能发布myMap结构吗?这只是示例代码,我的ide会发现这一点供我参考,我没有找到任何数字方法来检查某些int/number类型是否能根据需要正常工作,所以前几天我在另一个问题上发现了这一点:
函数isInt(data){return typeof data=='number'&&&(data%1)==0;}
当然,一定有一个例子,你可以告诉我们,在
value
之后,第二行缺少一个右括号,你可以发布myMap结构吗?这只是一个例子代码,我的ide可能会发现,对于我来说,作为参考,我还没有找到任何检查某些int/number类型是否能够根据需要正常工作的number方法,因此我在前几天的另一个问题上发现了这一点:
函数isInt(data){return typeof data=='number'&(data%1)==0;}
当然,您可以给我们展示一个例子