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

我收到此错误:Uncaught TypeError:无法读取null的属性“ map”

Js脚本:

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

最佳答案

String.match返回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'))

10-08 01:08