首页 > 解决方案 > javascript Uncaught TypeError for map

问题描述

如果我在脚本中使用地图,我会收到此错误。如何解决此错误?

我收到此错误:未捕获的类型错误:无法读取 null 的属性“地图”

JS脚本:

 var stringval="global $1200"; 
 var getVal=stringval.match(/\d+/g).map(Number);

标签: javascript

解决方案


字符串匹配返回Array<string> | null

  • 如果找到匹配,将返回一个匹配的字符串数组。
  • 如果没有找到匹配,null将被渲染。

因此,在您的情况下,如果字符串没有任何数字,它将返回null导致脚本中断。

样本:

function getNumber(stringval) {
  return stringval.match(/\d+/g).map(Number);
}

var stringval = "global $1200";
console.log(getNumber(stringval))
console.log(getNumber('Hello World'))


解决此问题的一种简单方法是添加匹配是否存在的检查:

function getNumber(stringval) {
  // You can set any value based on your requirement
  var defaultValue = undefined;
  var matches = stringval.match(/\d+/g)
  return matches !== null ? matches.map(Number) : defaultValue;
}

var stringval = "global $1200";
console.log(getNumber(stringval))
console.log(getNumber('Hello World'))


推荐阅读