为什么数组中不返回结果的filter方法在javascript中没有给出空数组?
我试图在Javascript中的数组上使用条件过滤方法。我遇到的问题是,将空数组与应为空的筛选数组进行比较(因为筛选器不返回结果,而应根据返回空数组)并不能获得所需的结果 我已经尝试在终端的Node.js会话中创建空数组,也尝试在上的测试环境中创建空数组 //我的终端上的节点环境为什么数组中不返回结果的filter方法在javascript中没有给出空数组?,javascript,arrays,node.js,methods,Javascript,Arrays,Node.js,Methods,我试图在Javascript中的数组上使用条件过滤方法。我遇到的问题是,将空数组与应为空的筛选数组进行比较(因为筛选器不返回结果,而应根据返回空数组)并不能获得所需的结果 我已经尝试在终端的Node.js会话中创建空数组,也尝试在上的测试环境中创建空数组 //我的终端上的节点环境 const emptyArr = [] const arr2 = [1, 1, 2, 2] const testArr = arr2.filter((iso) => iso >= 3) testArr
const emptyArr = []
const arr2 = [1, 1, 2, 2]
const testArr = arr2.filter((iso) => iso >= 3)
testArr === emptyArr //prints false, but should be true
预期结果应该为true,因为根据MDN,空筛选器返回空数组。然而,实际结果是错误的,这意味着过滤后的数组实际上不是空的。以下是一篇文章,回答了这个问题:
[]=[]
为false
,因为它们是两个不同的空数组
您需要比较两个数组的内容以确定相等性
在您的情况下,您可能需要检查长度,如下所示:
if(!arr1.length && !arr2.length) {
/* do something */
}
在javascript中,数组是对象,两个对象的比较总是返回
false
。你应该投票以重复的方式结束问题,而不是给出自己的答案。我不知道如何解决:-(