Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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 无法读取属性';1';空值。变量设置_Javascript_Jquery - Fatal编程技术网

Javascript 无法读取属性';1';空值。变量设置

Javascript 无法读取属性';1';空值。变量设置,javascript,jquery,Javascript,Jquery,如果没有匹配项,则为变量指定null;如果有匹配项,则为变量指定第二个匹配项 这就是我所想的,但是当它返回null时,它仍然会检查代码的其余部分,以确定它何时为false。然后我得到一个未捕获的TypeError:cannotreadproperty'1'为null 我怎样才能绕过这一部分,使它工作,而不给我一个错误 var matches = $("#search input").val().match(pattern); var id = []; id["new"] = (typeo

如果没有匹配项,则为变量指定null;如果有匹配项,则为变量指定第二个匹配项

这就是我所想的,但是当它返回null时,它仍然会检查代码的其余部分,以确定它何时为false。然后我得到一个
未捕获的TypeError:cannotreadproperty'1'为null

我怎样才能绕过这一部分,使它工作,而不给我一个错误

var matches = $("#search input").val().match(pattern);    
var id = [];
id["new"] = (typeof matches === null) ? null : matches[1]; // <--
var matches=$(“#搜索输入”).val().match(模式);
var id=[];
id[“新建”]=(匹配项的类型===null)?null:匹配[1];// 试试这个:

id["new"] = (matches == null) ? null : matches[1];

.match()
如果未找到匹配项,则返回
null

typeof
运算符始终返回一个永远不会===null的字符串

由于当不匹配时,
$(“#搜索输入”).val().match(pattern)
的结果总是
null
,而当匹配时数组总是
null
,因此您可以执行以下操作:

id["new"] = matches ? matches[1] :null;
甚至:

id["new"] = matches && matches[1];

首先检查匹配项是否有值谢谢。第二段代码发生了什么?它能工作,但我很好奇那里发生了什么,因为我不明白。@Kiddmond
A和&B
返回
B
如果
A
是真值,否则返回
A
。由于
matches
在不匹配时为空,并且在本例中您希望为空,因此代码可以简单地指向此。您的第一个代码不是错误的吗?如果
匹配
是真的,您将得到
空值
输出。。。