我正在尝试使用map
从数组中返回单个元素,但不断出现null
错误
到目前为止我有这个
var [headers] = recNoteSheets[recSh].getRange(i,1,1,20).getValues();//get all headers
var tempPref = "test "//temp session prefix variable for regexp REPLACE
var regExpCue = new RegExp(tempPref+"(\\w+)","gi");
//get sortId (cue name) column
var indx = headers.indexOf("SORT ID");
var sortIds = recNotes.map(function(x){
return regExpCue.exec(x[indx])[1]
});
我对null
为何引起问题感到困惑,因为我的理解是返回将不会返回null
?
编辑
因此在return语句之前添加在同一行中
var testexec = regExpCue.exec(x[indx])[1];
return (regExpCue.exec(x[indx])[1]);
testexec
变量设置正确并有一个值,但是当在return
中运行相同的语句时,它将出错。我不知道为什么
这里有两个可能的问题,但是由于没有人知道您的recNotes
数组是什么样子,所以无法确定哪个是您的问题
问题一:x
为空,所以x[indx]
引发错误。
问题二:x[indx]
为空,因此regExpCue.exec(x[indx])[1]
引发错误。 regExpCue.exec(x[indx])
返回null,所以您正在执行(null)[1]
,这将导致错误