如果我在脚本中使用 map ,我会收到此错误。如何解决这个错误?
我收到此错误:未捕获类型错误:无法读取 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'))
关于javascript map 未捕获类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54554051/