为什么在 Reactjs 应用中,'!=' 可以使用,但 '!==' 不行?
为什么在 Reactjs 应用中,'!=' 可以使用,但 '!==' 不行?
已关闭。 该问题需要调试详细信息。它暂时不接受回答。
编辑问题,包括所需行为、特定问题或错误以及重现问题所需的最短代码。这将有助于其他人回答问题。
改善这个问题
我会尽可能地简短。基本上我有一个react应用程序,我正在映射一个对象数组,每个对象是表中的一行。在每行末尾,有一个删除按钮,我正在传递一个jsx \'id\'属性(从对象中检索),“id”用于确定删除哪一行。当单击按钮时,我传递以下函数:
const handleDelete = (e) => { console.log(e.target.id); const passedId = e.target.id; let newdata = data.filter((obj) => obj.id != passedId); // != works fine !== returns the same array console.log(newdata); //axios stuff }
我想过滤数组,以便不包括带有传递id的对象。在控制台记录的e.target.id就像所预期的那样是一个整数,对象id也是一个整数。那么为什么“!==”不起作用?
admin 更改状态以发布 2023年5月21日
问题在于当您执行 event.target.id
时,根据文档,结果是一个字符串,而不是一个整数。因此,当您比较这两个变量时,它们具有不同的数据类型,因此根据 "===" 它们不相等。
因此,在这种情况下,您将必须使用非严格比较来检查值。
使用!=
比较两个变量的值。使用!==
比较值和类型。
例如,
"5" == 5
是true
,
"5" === 5
是false
在没有看到你的输入之前,我想象e.target.id
与obj.id
的类型不同。
有关更多信息,请参见这里