Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 Array.filter无法按预期工作,并且是ILD代码_Javascript - Fatal编程技术网

Javascript Array.filter无法按预期工作,并且是ILD代码

Javascript Array.filter无法按预期工作,并且是ILD代码,javascript,Javascript,我有以下代码: var测试列表=[{ “信息”:“Dieses Feld Is ein Pflichtfeld.”, “元素”:{}, “方法”:“必需”, “名称”:“电子邮件” }, { “消息”:“Falscher代码!”, “元素”:{}, “方法”:“joeCode”, “名称”:“代码” } ]; var name=“code”, 方法=“joecodexcxc”; testList=testList.filter(x=>x.name!==name&&x.method!==meth

我有以下代码:

var测试列表=[{
“信息”:“Dieses Feld Is ein Pflichtfeld.”,
“元素”:{},
“方法”:“必需”,
“名称”:“电子邮件”
},
{
“消息”:“Falscher代码!”,
“元素”:{},
“方法”:“joeCode”,
“名称”:“代码”
}
];
var name=“code”,
方法=“joecodexcxc”;
testList=testList.filter(x=>x.name!==name&&x.method!==method);

log(testList)您的条件对第二个对象的计算结果为false,因为name==“code”,因此我们有false&&true(其计算结果为false)。您可能打算使用| | | OR运算符。

您很可能在寻找OR门
|

在这个布尔表达式中

x.name!==名称和x.method!==方法
x
testList
中的第二个元素时。它评估为

“code”!==“代码”和“joeCode”!=“JoeCodexCxC”
这是
false&&true
,这是
false
——因此该对象被过滤掉

请尝试使用
|
-

x.name!==名称| | x.method!==方法
或者,为了让情况更人性化,可以应用德·摩根定律

!(x.name==name&&x.method==method)

出了什么问题?猜测包含第一个元素的数组将被返回到您只需要| |而不是&&@william。是,将返回第一个元素。但是这不是错了吗,因为没有匹配的tox=>x.name!==名称和x.method!==方法?测试列表[0]。名称!==“代码”&&testList[0]。方法!==“JoeCodexCxC”,所以这是正确的过滤这达成了交易:!(x.name==name&&x.method==method)thx